{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "b523d269",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'/home/ec2-user/SageMaker/PretrainedRecSys_middle'"
      ]
     },
     "execution_count": 1,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "%pwd"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "id": "f49db69f",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "gpu or cpu?:  cuda\n",
      "load data from multiple domains\n",
      "**********   0  --  es   **********\n",
      "# of item =  39675\n",
      "# of user =  400883\n",
      "# of total sample =  307220\n",
      "# of train sample =  122979\n",
      "**********   1  --  in   **********\n",
      "# of item =  45893\n",
      "# of user =  507581\n",
      "# of total sample =  241026\n",
      "# of train sample =  95373\n",
      "**********   2  --  mx   **********\n",
      "# of item =  43095\n",
      "# of user =  249229\n",
      "# of total sample =  234431\n",
      "# of train sample =  93762\n",
      "*********** convert interaction to dataset ***********\n",
      "train num of sample = 312114\n",
      "valid num of sample = 92290\n",
      "valid num of sample = 73001\n",
      "valid num of sample = 69608\n",
      "test_ num of sample = 91951\n",
      "test_ num of sample = 72652\n",
      "test_ num of sample = 71061\n",
      "negDomainIntTensor  torch.Size([7])\n",
      "negItemIdxTensor  torch.Size([7])\n",
      "negItemEmbTensor  torch.Size([7, 768])\n",
      "negPopEmbTensor  torch.Size([7, 3])\n",
      "negDomainIntTensor  torch.Size([7])\n",
      "negItemIdxTensor  torch.Size([7])\n",
      "negItemEmbTensor  torch.Size([7, 768])\n",
      "negPopEmbTensor  torch.Size([7, 3])\n",
      "List_userStr\n",
      "2\n",
      "posDomainIntTensor\n",
      "torch.Size([2])\n",
      "historyL\n",
      "torch.Size([2])\n",
      "historyItemIdxTensor\n",
      "torch.Size([2, 4])\n",
      "historyItemEmbTensor\n",
      "torch.Size([2, 4, 768])\n",
      "historyPopEmbTensor\n",
      "torch.Size([2, 4, 3])\n",
      "posItemIdxTensor\n",
      "torch.Size([2, 1])\n",
      "posItemEmbTensor\n",
      "torch.Size([2, 1, 768])\n",
      "posPopEmbTensor\n",
      "torch.Size([2, 1, 3])\n",
      "negDomainIntTensor\n",
      "torch.Size([2, 7])\n",
      "negItemIdxTensor\n",
      "torch.Size([2, 7])\n",
      "negItemEmbTensor\n",
      "torch.Size([2, 7, 768])\n",
      "negPopEmbTensor\n",
      "torch.Size([2, 7, 3])\n"
     ]
    }
   ],
   "source": [
    "import torch\n",
    "from torch.utils.data import Dataset, DataLoader, WeightedRandomSampler\n",
    "from torch.nn.utils.rnn import pad_sequence\n",
    "\n",
    "import random\n",
    "import numpy as np\n",
    "from numpy.random import choice\n",
    "import pickle \n",
    "import gzip\n",
    "import time\n",
    "from sklearn.model_selection import train_test_split\n",
    "import itertools\n",
    "\n",
    "def from_asin2idx_to_idx2asin(asin2idx):\n",
    "    idx2asin = {}\n",
    "    for asin, idx in asin2idx.items():\n",
    "        idx2asin[idx] = asin\n",
    "    return idx2asin\n",
    "\n",
    "def truncate_seq2sample(domainStr, domainInt, truncate, List_seqDict):\n",
    "    truncate_List_InteractionDict = []\n",
    "    for seqDict in List_seqDict:\n",
    "        for i in np.arange(len(seqDict['seq'])-1)+1:\n",
    "            if i <= truncate:\n",
    "                truncate_List_InteractionDict.append({'userStr': seqDict['user'],\n",
    "                                                      'posDomainInt': domainInt,\n",
    "                                                      'domainStr': domainStr,\n",
    "                                                      'historyItemIdxList': seqDict['seq'][:i],\n",
    "                                                      'historyDayIdxList': seqDict['day'][:i],\n",
    "                                                      'posItemIdxList': seqDict['seq'][i:i+1],\n",
    "                                                      'posDayIdxList': seqDict['day'][i:i+1],\n",
    "                                                     })\n",
    "            else:\n",
    "                truncate_List_InteractionDict.append({'userStr': seqDict['user'],\n",
    "                                                      'posDomainInt': domainInt,\n",
    "                                                      'domainStr': domainStr,\n",
    "                                                      'historyItemIdxList': seqDict['seq'][i-truncate:i],\n",
    "                                                      'historyDayIdxList': seqDict['day'][i-truncate:i],\n",
    "                                                      'posItemIdxList': seqDict['seq'][i:i+1],\n",
    "                                                      'posDayIdxList': seqDict['day'][i:i+1],\n",
    "                                                     })\n",
    "    return truncate_List_InteractionDict\n",
    "                \n",
    "class myDataset(Dataset):\n",
    "    def __init__(self, name, I2B, List_sampleDict, n_neg, truncate, transform=None):\n",
    "        self.name = name\n",
    "        self.I2B = I2B\n",
    "        self.List_sampleDict = List_sampleDict\n",
    "        \n",
    "        print(self.name+' num of sample =', len(self.List_sampleDict))\n",
    "        self.n_neg = n_neg\n",
    "        self.T = truncate\n",
    "        \n",
    "    def __len__(self):\n",
    "        return len(self.List_sampleDict)\n",
    "        \n",
    "    def __getitem__(self, idx):\n",
    "        if torch.is_tensor(idx):\n",
    "            print('??? ??? ???')\n",
    "            idx = idx.tolist()\n",
    "        \n",
    "        # get interaction\n",
    "        sampleDict = self.List_sampleDict[idx]\n",
    "        # get user\n",
    "        userStr = sampleDict['userStr']\n",
    "        # get domain\n",
    "        posDomainInt = sampleDict['posDomainInt']\n",
    "        posDomainIntList = [posDomainInt]\n",
    "        posDomainIntTensor = torch.tensor(posDomainIntList) # 1\n",
    "        \n",
    "        # get historyL ?\n",
    "        historyItemIdxList = sampleDict['historyItemIdxList']\n",
    "        historyL = len(historyItemIdxList)\n",
    "        # get historyItemIdxTensor T (truncate)\n",
    "        historyItemIdxTensor = torch.tensor(historyItemIdxList)\n",
    "        historyItemIdxTensorPad = torch.randint(0, self.I2B[posDomainInt]['numItem'], [self.T-historyL])\n",
    "        historyItemIdxTensor = torch.cat([historyItemIdxTensor, \n",
    "                                          historyItemIdxTensorPad])\n",
    "        # get historyItemEmbTensor T x F (nlp embedding)\n",
    "        historyItemEmbTensor = self.I2B[posDomainInt]['itemEmb'][historyItemIdxTensor]\n",
    "        # get historyDayIdxTensor T\n",
    "        historyDayIdxList = sampleDict['historyDayIdxList']\n",
    "        historyDayIdxTensor = torch.tensor(historyDayIdxList)\n",
    "        historyDayIdxTensorPad = torch.ones([self.T-historyL], dtype=torch.long)*historyDayIdxList[-1] # using the last day to do pad\n",
    "        historyDayIdxTensor = torch.cat([historyDayIdxTensor, \n",
    "                                         historyDayIdxTensorPad])\n",
    "        # get historyPopEmbTensor T x k (pop feature)\n",
    "        historyPopEmbTensor = self.I2B[posDomainInt]['dayItemPop'][historyDayIdxTensor, historyItemIdxTensor]\n",
    "        \n",
    "        # get posItemIdxTensor 1\n",
    "        posItemIdxList = sampleDict['posItemIdxList']\n",
    "        posItemIdxTensor = torch.tensor(posItemIdxList)\n",
    "        # get posItemEmbTensor 1 x F\n",
    "        posItemEmbTensor = self.I2B[posDomainInt]['itemEmb'][posItemIdxTensor]\n",
    "        # get posDayIdxTensor 1\n",
    "        posDayIdxList = sampleDict['posDayIdxList']\n",
    "        posDayIdxTensor = torch.tensor(posDayIdxList)\n",
    "        # get posPopEmbTensor 1 x k\n",
    "        posPopEmbTensor = self.I2B[posDomainInt]['dayItemPop'][posDayIdxTensor, posItemIdxTensor]\n",
    "        \n",
    "        \n",
    "        # get negItemEmbTensor n_neg x F\n",
    "        # get negItemEmbTensor n_neg x F\n",
    "        # get negPopEmbTensor n_neg x k\n",
    "        negDomainIntTensor_list = []\n",
    "        negItemIdxTensor_list = []\n",
    "        negItemEmbTensor_list = []\n",
    "        negPopEmbTensor_list = []\n",
    "        if self.name == 'train':\n",
    "            nD = len(self.I2B)\n",
    "            average_neg = int(self.n_neg/nD)\n",
    "            negPerD_list = [average_neg]*(nD-1) + [self.n_neg-average_neg*(nD-1)]\n",
    "            np.random.shuffle(negPerD_list)\n",
    "        else:\n",
    "            negPerD_list = [0 for i in self.I2B.keys()]\n",
    "            negPerD_list[posDomainInt] = n_neg\n",
    "        if 1:\n",
    "            for i, negPerD in enumerate(negPerD_list):\n",
    "                negDomainIntTensor_list.append(torch.ones(negPerD, dtype=torch.long)*i)\n",
    "                \n",
    "                negItemIdxTensor = torch.randint(0, self.I2B[i]['numItem'], [negPerD])\n",
    "                negItemIdxTensor_list.append(negItemIdxTensor)\n",
    "                \n",
    "                negItemEmbTensor = self.I2B[i]['itemEmb'][negItemIdxTensor]\n",
    "                negItemEmbTensor_list.append(negItemEmbTensor)\n",
    "                \n",
    "                if i == posDomainInt: # using the last day to do n_neg\n",
    "                    negDayIdxTensor = torch.ones([negPerD], dtype=torch.long) *posDayIdxList[0]\n",
    "                    negPopEmbTensor = self.I2B[i]['dayItemPop'][negDayIdxTensor, negItemIdxTensor]\n",
    "                else: # just give pop = 0\n",
    "                    negDayIdxTensor = torch.ones([negPerD], dtype=torch.long) *0\n",
    "                    negPopEmbTensor = self.I2B[i]['dayItemPop'][negDayIdxTensor, negItemIdxTensor] *0\n",
    "                negPopEmbTensor_list.append(negPopEmbTensor)\n",
    "        negDomainIntTensor = torch.cat(negDomainIntTensor_list, dim=0)\n",
    "        negItemIdxTensor   = torch.cat(negItemIdxTensor_list  , dim=0)\n",
    "        negItemEmbTensor   = torch.cat(negItemEmbTensor_list  , dim=0)\n",
    "        negPopEmbTensor    = torch.cat(negPopEmbTensor_list   , dim=0)\n",
    "        print('negDomainIntTensor ',negDomainIntTensor.shape)\n",
    "        print('negItemIdxTensor ',negItemIdxTensor.shape)\n",
    "        print('negItemEmbTensor ',negItemEmbTensor.shape)\n",
    "        print('negPopEmbTensor ',negPopEmbTensor.shape)\n",
    "        \n",
    "        sample = {\n",
    "            'userStr': userStr,\n",
    "            'posDomainIntTensor': posDomainIntTensor,\n",
    "            'historyL': historyL,\n",
    "            \n",
    "            'historyItemIdxTensor': historyItemIdxTensor,\n",
    "            'historyItemEmbTensor': historyItemEmbTensor,\n",
    "            #'historyDayIdxTensor': historyDayIdxTensor, # we do not need this\n",
    "            'historyPopEmbTensor': historyPopEmbTensor,\n",
    "            \n",
    "            'posItemIdxTensor': posItemIdxTensor,\n",
    "            'posItemEmbTensor': posItemEmbTensor,\n",
    "            #'posDayIdxTensor': posDayIdxTensor, # we do not need this\n",
    "            'posPopEmbTensor': posPopEmbTensor,\n",
    "            \n",
    "            'negDomainIntTensor': negDomainIntTensor,\n",
    "            \n",
    "            'negItemIdxTensor': negItemIdxTensor,\n",
    "            'negItemEmbTensor': negItemEmbTensor,\n",
    "            #'negDayIdxTensor': negDayIdxTensor, # we do not has this\n",
    "            'negPopEmbTensor': negPopEmbTensor,\n",
    "            \n",
    "        }\n",
    "        return sample\n",
    "\n",
    "\n",
    "\n",
    "def collate_fn_pad(batch):\n",
    "    #time_0 = time.time()\n",
    "    List_userStr       = [data['userStr']    for data in batch]\n",
    "    posDomainIntTensor = torch.cat([data['posDomainIntTensor']  for data in batch]) # B x 1\n",
    "    historyL           = torch.tensor([data['historyL']    for data in batch]) # B\n",
    "    \n",
    "    historyItemIdxTensor = torch.cat([data['historyItemIdxTensor'].unsqueeze(0)    for data in batch]) # B x T\n",
    "    historyItemEmbTensor = torch.cat([data['historyItemEmbTensor'].unsqueeze(0)    for data in batch]) # B x T x F\n",
    "    historyPopEmbTensor  = torch.cat([data['historyPopEmbTensor' ].unsqueeze(0)    for data in batch]) # B x T x k\n",
    "\n",
    "    posItemIdxTensor = torch.cat([data['posItemIdxTensor'].unsqueeze(0)    for data in batch]) # B x 1\n",
    "    posItemEmbTensor = torch.cat([data['posItemEmbTensor'].unsqueeze(0)    for data in batch]) # B x 1 x F\n",
    "    posPopEmbTensor  = torch.cat([data['posPopEmbTensor' ].unsqueeze(0)    for data in batch]) # B x 1 x k\n",
    "    \n",
    "    negDomainIntTensor = torch.cat([data['negDomainIntTensor'].unsqueeze(0)    for data in batch]) # B x n_neg\n",
    "\n",
    "    negItemIdxTensor = torch.cat([data['negItemIdxTensor'].unsqueeze(0)    for data in batch]) # B x n_neg\n",
    "    negItemEmbTensor = torch.cat([data['negItemEmbTensor'].unsqueeze(0)    for data in batch]) # B x n_neg x F\n",
    "    negPopEmbTensor  = torch.cat([data['negPopEmbTensor' ].unsqueeze(0)    for data in batch]) # B x n_neg x k\n",
    "    \n",
    "    batch_dict = {\n",
    "        'List_userStr': List_userStr,\n",
    "        'posDomainIntTensor': posDomainIntTensor,\n",
    "        'historyL': historyL,\n",
    "        \n",
    "        'historyItemIdxTensor': historyItemIdxTensor,\n",
    "        'historyItemEmbTensor': historyItemEmbTensor,\n",
    "        #'historyDayIdxTensor': historyDayIdxTensor, # we do not need this\n",
    "        'historyPopEmbTensor': historyPopEmbTensor,\n",
    "        \n",
    "        'posItemIdxTensor': posItemIdxTensor,\n",
    "        'posItemEmbTensor': posItemEmbTensor,\n",
    "        #'posDayIdxTensor': posDayIdxTensor, # we do not need this\n",
    "        'posPopEmbTensor': posPopEmbTensor,\n",
    "        \n",
    "        'negDomainIntTensor': negDomainIntTensor,\n",
    "        \n",
    "        'negItemIdxTensor': negItemIdxTensor,\n",
    "        'negItemEmbTensor': negItemEmbTensor,\n",
    "         #'negDayIdxTensor': negDayIdxTensor, # we do not has this\n",
    "        'negPopEmbTensor': negPopEmbTensor,\n",
    "    }\n",
    "    return batch_dict\n",
    "\n",
    "\n",
    "def get_split(seq_list, random_seed=2022, split=[40,30,30]):\n",
    "    train, valid, test = split[0], split[1], split[2]\n",
    "    train_seq_list, valid_test_seq_list = train_test_split(seq_list, test_size = 1-train/(train+valid+test), random_state=2022)\n",
    "    valid_seq_list,       test_seq_list = train_test_split(valid_test_seq_list, test_size = valid/(valid+test), random_state=2022)\n",
    "    return train_seq_list, valid_seq_list, test_seq_list\n",
    "\n",
    "# def reindex_seq_based_on_item_index(split_List_seqDict, List_startItemIdx, fuse=True):\n",
    "#     fused_List_seqDict = []\n",
    "#     for i, List_seqDict in enumerate(split_List_seqDict):\n",
    "#         previous_count = List_startItemIdx[i]\n",
    "#         this_seqDict = []\n",
    "#         for seqDict in List_seqDict:\n",
    "#             this_seqDict.append({'user': seqDict['user'], \n",
    "#                                  'seq': [item_idx+previous_count for item_idx in seqDict['seq']],\n",
    "#                                  'day': seqDict['pop1'],\n",
    "#                                  #'pop1': seqDict['pop1'],\n",
    "#                                  #'pop2': seqDict['pop2'],\n",
    "#                                 })\n",
    "#         if fuse:\n",
    "#             fused_List_seqDict.extend(this_seqDict)\n",
    "#         else:\n",
    "#             fused_List_seqDict.append(this_seqDict)\n",
    "#     return fused_List_seqDict\n",
    "\n",
    "def get_myDataLoader(domain_list, db, n_neg, truncate, bs=4, train_cut=9999999, pop_type='pop1', device=None, dataSplit=[40,30,30]):\n",
    "    print('load data from multiple domains')\n",
    "    \n",
    "    fused_train_List_sampleDict = [] #         list of dict   # we train domains together but valid/test domains seperately\n",
    "    split_valid_List_sampleDict = [] # list of list of dict\n",
    "    split_test__List_sampleDict = [] # list of list of dict\n",
    "    \n",
    "    fused_train_sampleWeightScalar = [] # list: [weight of interaction 0, ...]\n",
    "    \n",
    "    domainInt2Base = {} # used for save itemEmb and dayItemPop\n",
    "    domainInt2domainStr = {}\n",
    "    domainStr2domainInt = {}\n",
    "    for domainInt, domainStr  in enumerate(domain_list):\n",
    "        domainInt2Base[domainInt] = {}\n",
    "        domainInt2domainStr[domainInt] = domainStr\n",
    "        domainStr2domainInt[domainStr] = domainInt\n",
    "    I2B = domainInt2Base\n",
    "    I2D = domainInt2domainStr\n",
    "    D2I = domainStr2domainInt\n",
    "    \n",
    "    \n",
    "    seen_user = [] # used for checking user overlap\n",
    "    seen_asin = [] # used for checking asin overlap\n",
    "    \n",
    "    for domainInt, domainStr in enumerate(domain_list):\n",
    "        print('**********  ',domainInt,' -- ',domainStr,'  **********')\n",
    "        data_file = 'CrossMarket/processed/'+domainStr+'_data_filtered.pickle'\n",
    "        dayItemPop_file = 'CrossMarket/processed/'+domainStr+'_day_item_'+pop_type+'.pt'\n",
    "        interaction_file = 'CrossMarket/processed/'+domainStr+'_interaction_seq.pklz'\n",
    "        \n",
    "        with open(data_file, 'rb') as handle:\n",
    "            itemInfo = pickle.load(handle)['training_info']['asin']\n",
    "            \n",
    "            itemEmb = torch.from_numpy(itemInfo['x']).type(torch.FloatTensor).to(device)\n",
    "            I2B[domainInt]['itemEmb'] = itemEmb\n",
    "            \n",
    "            itemAsin2itemIdx = itemInfo['mapping']\n",
    "            itemIdx2itemAsin = from_asin2idx_to_idx2asin(itemAsin2itemIdx)\n",
    "            I2B[domainInt]['A2I'] = itemAsin2itemIdx\n",
    "            I2B[domainInt]['I2A'] = itemIdx2itemAsin\n",
    "            \n",
    "            seen_asin.extend(list(itemAsin2itemIdx.keys())) \n",
    "            \n",
    "            numItem = len(itemAsin2itemIdx)\n",
    "            print('# of item = ', numItem)\n",
    "            I2B[domainInt]['numItem'] = numItem\n",
    "        \n",
    "        I2B[domainInt]['dayItemPop'] = torch.load(dayItemPop_file)\n",
    "        # dataBase finished\n",
    "        \n",
    "        with gzip.open(interaction_file, 'rb') as ifp:\n",
    "            List_seqDict = pickle.load(ifp)\n",
    "            \n",
    "            seen_user.extend([seqDict['user'] for seqDict in List_seqDict])\n",
    "            \n",
    "            numUser = len(List_seqDict)\n",
    "            print('# of user = ', numUser)\n",
    "            \n",
    "            \n",
    "            numTotalSample = np.sum([np.max([0, len(seqDict['seq'])-1]) for seqDict in List_seqDict])\n",
    "            print('# of total sample = ', numTotalSample)\n",
    "            \n",
    "            train_List_seqDict, valid_List_seqDict, test__List_seqDict = get_split(List_seqDict, random_seed=2022, split=dataSplit)\n",
    "            \n",
    "            numTrainSample = np.sum([np.max([0, len(seqDict['seq'])-1]) for seqDict in train_List_seqDict])\n",
    "            print('# of train sample = ', numTrainSample)\n",
    "            \n",
    "            train_List_sampleDict = truncate_seq2sample(domainStr, domainInt, truncate, train_List_seqDict)\n",
    "            fused_train_List_sampleDict.extend(train_List_sampleDict)\n",
    "            split_valid_List_sampleDict.append(truncate_seq2sample(domainStr, domainInt, truncate, valid_List_seqDict))\n",
    "            split_test__List_sampleDict.append(truncate_seq2sample(domainStr, domainInt, truncate, test__List_seqDict))\n",
    "            \n",
    "            if len(train_List_sampleDict) != numTrainSample:\n",
    "                print(len(train_List_sampleDict))\n",
    "                print(numTrainSample)\n",
    "                raise Exception('numTrainSample wrong') \n",
    "                \n",
    "            if db == 0:\n",
    "                raise Exception('please choose db(domain balance) = 1') \n",
    "                fused_train_sampleWeightScalar.extend([1]*len(train_List_seqDict))\n",
    "            elif db == 1:\n",
    "                fused_train_sampleWeightScalar.extend([1/(numTrainSample*len(domain_list))]*numTrainSample)\n",
    "            else:\n",
    "                raise Exception('db(domain balance) type not supported')\n",
    "    \n",
    "    seen_asin = list(dict.fromkeys(seen_asin).keys())\n",
    "    seen_user = list(dict.fromkeys(seen_user).keys())\n",
    "    \n",
    "    print('*********** convert interaction to dataset ***********')\n",
    "    fused_train_dataset = myDataset('train', I2B, fused_train_List_sampleDict, n_neg, truncate)\n",
    "    split_valid_dataset = [myDataset('valid', I2B, List_InteractionDict, n_neg, truncate) \\\n",
    "                           for i, List_InteractionDict in enumerate(split_valid_List_sampleDict)]\n",
    "    split_test__dataset = [myDataset('test_', I2B, List_InteractionDict, n_neg, truncate) \\\n",
    "                           for i, List_InteractionDict in enumerate(split_test__List_sampleDict)]\n",
    "    #print('??????', len(fused_train_sample_weight))\n",
    "    fused_train_dataloader = DataLoader(fused_train_dataset, batch_size=bs,\n",
    "                                        sampler = WeightedRandomSampler(fused_train_sampleWeightScalar, \n",
    "                                                                        len(fused_train_sampleWeightScalar), \n",
    "                                                                        replacement=True),\n",
    "                                        collate_fn = collate_fn_pad,\n",
    "                                        shuffle=False, num_workers=0)\n",
    "    split_valid_dataloader = [DataLoader(dataset, batch_size=bs,\n",
    "                                         collate_fn = collate_fn_pad,\n",
    "                                         shuffle=False, num_workers=0) for dataset in split_valid_dataset]\n",
    "    split_test__dataloader = [DataLoader(dataset ,  batch_size=bs,\n",
    "                                         collate_fn = collate_fn_pad,\n",
    "                                         shuffle=False, num_workers=0) for dataset in split_test__dataset ]\n",
    "    \n",
    "    dataloaders = {\n",
    "        'fused_train_dataloader': fused_train_dataloader,\n",
    "        'split_valid_dataloader': split_valid_dataloader,\n",
    "        'split_test__dataloader': split_test__dataloader,\n",
    "        'I2B': I2B,\n",
    "        'seen_user': seen_user,\n",
    "        'seen_asin': seen_asin,\n",
    "    }\n",
    "    return dataloaders\n",
    "\n",
    "if __name__ == \"__main__\":\n",
    "    import os\n",
    "    os.environ[\"CUDA_VISIBLE_DEVICES\"] = '0'\n",
    "    device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')\n",
    "    print('gpu or cpu?: ',device)\n",
    "\n",
    "    all_domains = ['es','in','ca','mx','au','de']\n",
    "    seendl = ['es','in','mx']\n",
    "    testdl = []\n",
    "    \n",
    "    dataloaders = get_myDataLoader(seendl, db = 1, n_neg = 7, truncate = 4, bs = 2, pop_type='pop1', device = device)\n",
    "    for batch in dataloaders['fused_train_dataloader']:\n",
    "        for key in batch:\n",
    "            print(key)\n",
    "            if key == 'List_userStr':\n",
    "                print(len(batch[key]))\n",
    "            else:       \n",
    "                print(batch[key].shape)\n",
    "        break\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "id": "c4b40ae1",
   "metadata": {},
   "outputs": [
    {
     "ename": "IndexError",
     "evalue": "list index out of range",
     "output_type": "error",
     "traceback": [
      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[0;31mIndexError\u001b[0m                                Traceback (most recent call last)",
      "\u001b[0;32m/tmp/ipykernel_27236/1409279382.py\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mkey\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mlist\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mbatch\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mkeys\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m13\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m      2\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m      3\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mbatch\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;31mIndexError\u001b[0m: list index out of range"
     ]
    }
   ],
   "source": [
    "key = list(batch.keys())[13]\n",
    "print(key)\n",
    "print(batch[key])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 66,
   "id": "900fb269",
   "metadata": {},
   "outputs": [
    {
     "ename": "KeyError",
     "evalue": "'user'",
     "output_type": "error",
     "traceback": [
      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[0;31mKeyError\u001b[0m                                  Traceback (most recent call last)",
      "\u001b[0;32m/tmp/ipykernel_87742/1543906445.py\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0;32mfor\u001b[0m \u001b[0mbatch\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mdataloaders\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'fused_train_dataloader'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m      2\u001b[0m     \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mbatch\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mkeys\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m~/anaconda3/envs/amazonei_pytorch_latest_p37/lib/python3.7/site-packages/torch/utils/data/dataloader.py\u001b[0m in \u001b[0;36m__next__\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m    343\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    344\u001b[0m     \u001b[0;32mdef\u001b[0m \u001b[0m__next__\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 345\u001b[0;31m         \u001b[0mdata\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_next_data\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    346\u001b[0m         \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_num_yielded\u001b[0m \u001b[0;34m+=\u001b[0m \u001b[0;36m1\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    347\u001b[0m         \u001b[0;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_dataset_kind\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0m_DatasetKind\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mIterable\u001b[0m \u001b[0;32mand\u001b[0m\u001b[0;31m \u001b[0m\u001b[0;31m\\\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m~/anaconda3/envs/amazonei_pytorch_latest_p37/lib/python3.7/site-packages/torch/utils/data/dataloader.py\u001b[0m in \u001b[0;36m_next_data\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m    383\u001b[0m     \u001b[0;32mdef\u001b[0m \u001b[0m_next_data\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    384\u001b[0m         \u001b[0mindex\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_next_index\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m  \u001b[0;31m# may raise StopIteration\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 385\u001b[0;31m         \u001b[0mdata\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_dataset_fetcher\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfetch\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mindex\u001b[0m\u001b[0;34m)\u001b[0m  \u001b[0;31m# may raise StopIteration\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    386\u001b[0m         \u001b[0;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_pin_memory\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    387\u001b[0m             \u001b[0mdata\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0m_utils\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpin_memory\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpin_memory\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdata\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m~/anaconda3/envs/amazonei_pytorch_latest_p37/lib/python3.7/site-packages/torch/utils/data/_utils/fetch.py\u001b[0m in \u001b[0;36mfetch\u001b[0;34m(self, possibly_batched_index)\u001b[0m\n\u001b[1;32m     42\u001b[0m     \u001b[0;32mdef\u001b[0m \u001b[0mfetch\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mpossibly_batched_index\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m     43\u001b[0m         \u001b[0;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mauto_collation\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 44\u001b[0;31m             \u001b[0mdata\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdataset\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0midx\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0midx\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mpossibly_batched_index\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m     45\u001b[0m         \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m     46\u001b[0m             \u001b[0mdata\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdataset\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mpossibly_batched_index\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m~/anaconda3/envs/amazonei_pytorch_latest_p37/lib/python3.7/site-packages/torch/utils/data/_utils/fetch.py\u001b[0m in \u001b[0;36m<listcomp>\u001b[0;34m(.0)\u001b[0m\n\u001b[1;32m     42\u001b[0m     \u001b[0;32mdef\u001b[0m \u001b[0mfetch\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mpossibly_batched_index\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m     43\u001b[0m         \u001b[0;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mauto_collation\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 44\u001b[0;31m             \u001b[0mdata\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdataset\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0midx\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0midx\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mpossibly_batched_index\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m     45\u001b[0m         \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m     46\u001b[0m             \u001b[0mdata\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdataset\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mpossibly_batched_index\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m/tmp/ipykernel_87742/1976450084.py\u001b[0m in \u001b[0;36m__getitem__\u001b[0;34m(self, idx)\u001b[0m\n\u001b[1;32m     77\u001b[0m         \u001b[0mInteractionDict\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtruncate_fused_train_List_interactionDict\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0midx\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m     78\u001b[0m         \u001b[0;31m# get user\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 79\u001b[0;31m         \u001b[0muser\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mInteractionDict\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'user'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m     80\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m     81\u001b[0m         \u001b[0;31m# get historyEmb\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;31mKeyError\u001b[0m: 'user'"
     ]
    }
   ],
   "source": [
    "for batch in dataloaders['fused_train_dataloader']:\n",
    "    print(batch.keys())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "id": "6ec873a4",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['AF3SWBMYZYCDIZUYRCXIH6INMPVA',\n",
       " 'AGA5L475C4SD4RQAP6QA3XU6LRNA',\n",
       " 'AGJFDCZNVTQMSTLX2BY6A7UTWEQQ',\n",
       " 'AHMTYJVTR3427QJKQ7CZ3S3L2LOA',\n",
       " 'AFLU6Q2TKM3KRJYHJA7LGYPKKHKA',\n",
       " 'AGF3X7JS5647BRKST4CALQB6U5FA',\n",
       " 'AFKUUOHJIC4UCEKZ7GX2GY35YFFQ',\n",
       " 'AFV7AJZBZMB6MZ7NBAU7GMDBYZFA',\n",
       " 'AGUTMVKS3XUZUQZJ4NUYCWXY2PYQ',\n",
       " 'AFHPX63TOKKYVCWHUTPCPMYJGVOA',\n",
       " 'AHO27EZHJK5B3GPOOC567VWR7QBQ',\n",
       " 'AFH3U6GHTNHGRT3PZE76NCQHGKJA',\n",
       " 'AHU6DXRPWXFECFE2BOXUTCRTRPEA',\n",
       " 'AE5MDQYMSP5QDIM54GVD2HNRTDDQ',\n",
       " 'AHKFCJ7V42PCLRVWR2PDMZT2SQYQ',\n",
       " 'AEESO462743WBEDB6MT6G3AMY3GA',\n",
       " 'AFBLHDF2KZQJTFKYXDEKUSXTAD3Q',\n",
       " 'AGD5LNTW6MV7G3W7A2YJRVSWVEWA',\n",
       " 'AHNEYLECEJ44HQCYSP43YSRPVWMA',\n",
       " 'AGAI6C3YJ2JMD5I2NHTHFT4MKSFA',\n",
       " 'AFT2CXTIHZORQPQX3J5KRILQVJAA',\n",
       " 'AHSEGGN65CRCBK3YV5Y63GID47NA',\n",
       " 'AGDLJOI76VP36QQKUEGAOQHVIN4Q',\n",
       " 'AHILMKJSWA5GUHTED3MKMUPSCV3Q',\n",
       " 'AG2HENA4FPF2OMFLNFIX2425TNEQ',\n",
       " 'AFA7B2W5JES3MVZPWVRZF3FSQJFQ',\n",
       " 'AEXMDCBHO6W4IYEBBD6BUWFWR27A',\n",
       " 'AH5FIHGYCX3X6HPR6HVP3GFGEALA',\n",
       " 'AEQWN2UJMNGYTKU2PCMC7EKBAJOA',\n",
       " 'AEPH6S4FJI4FYWVLKE6IWWBMBCOQ',\n",
       " 'AFEHEI6W26IFX5VZSRIXBHX3ZJ7A',\n",
       " 'AE5VRD2FPAK3JHAAGVBNQZXPMLTA',\n",
       " 'AHHTRQNQKHZT5IAEE3RDT3NW7HNQ',\n",
       " 'AETY6OOEIEKMVRYQVTFV5JY3XDBA',\n",
       " 'AHCL7LHKGGCHETXER24RSNGI44IQ',\n",
       " 'AGJDUSAVMZJD4HW3352VSV7DPUZQ',\n",
       " 'AGLZST4WH3XWRUBB6P2MVWNYZEJQ',\n",
       " 'AEPAJV7WCPKCVEGP5BYALFZPTEVQ',\n",
       " 'AEEWPFH2R5CPUAWX7NIMFI4IADRQ',\n",
       " 'AGP2EGL6YKM7LU2KHCWJHPKURPDQ',\n",
       " 'AF6LAX6OXANHU525Z3E7YRIXWTAA',\n",
       " 'AHKJ5E6IQXGFC4PRBVKAYVOB5DRQ',\n",
       " 'AESSALFVKXNUHBFXKCYMPHBAXYIA',\n",
       " 'AH5RLAKWJJGKM66HOVXRJPKCAJAA',\n",
       " 'AFHJBDSBT4NPPM6ONG3X2JQ7RQ6A',\n",
       " 'AEZNREEFJW6PDHVIPOQJ4FLTQJ3Q',\n",
       " 'AHN2NTW7H72HRFIWTRA62Y4P54YQ',\n",
       " 'AGJVCURCAKM4DDEJE5ZPBLWUZTAQ',\n",
       " 'AHTWDIOTSULC2FCDNBTZ33AWHCOA',\n",
       " 'AHZVSJMPYJCRQ22QTHLG5OOHQDCA',\n",
       " 'AHTOP5BKBFR6G4I5WGGAMCI3XSWA',\n",
       " 'AHIJDFNCUWXAAVRHFURB34BQNQNQ',\n",
       " 'AEXCLYUW3LKWC5UFCHPVUHKTGU5A',\n",
       " 'AFOSSFGE2C3CYYNLGB5O4OHIC2XQ',\n",
       " 'AHW52FB25Z5SJD5XDYE4VSN6IZCA',\n",
       " 'AFKDVWGIQZSWOQBVYGJ62PJHUSVA',\n",
       " 'AH565RISITSW7LBKQGYKDICE7OCQ',\n",
       " 'AHSIDPY3PHB5HOJRCLRM4FUEZ3BQ',\n",
       " 'AFRCTIAKDTWDDJJEEUBYUEOQXQMA',\n",
       " 'AGHJN7NTZHN2ZNR7VRQ4JMATLRTQ',\n",
       " 'AHHQJ67L6CCS7D3PXCFJJ7BL74PQ',\n",
       " 'AEH5PEGDZDHKJGEPL63RDBGEK2WQ',\n",
       " 'AEPLG7VETNJKHIPWTU2IT24I253A',\n",
       " 'AFCYB37M7LAXPXI65L3A5PDAVEZA',\n",
       " 'AFLPGGWLPHN5F2VMHUKHXGI5RC3A',\n",
       " 'AGEWRAOV2SVRH7ZK56MMTJYWM3JA',\n",
       " 'AH63FVT26PW6FMDVFYWJ6QCS5AYA',\n",
       " 'AHALMOFG4ILUBVK4PWB5UBAV27KA',\n",
       " 'AEVNXQVXLHCBW4PUDRPNTFIUY5QQ',\n",
       " 'AFJEFXMGDFI4BFMB57H7BVFZESLA',\n",
       " 'AEMVZDUQSLSI2MIQC77M6SAH4AVQ',\n",
       " 'AGG47Z35IWP63OHTX3ALSYKNPKMA',\n",
       " 'AGLNYK32QJMNYH3IDLCPIB5ZXR2A',\n",
       " 'AF3TMFUUWQTVVXUHYUYDP7J53C2Q',\n",
       " 'AFK3XUO5LLVBHGYERT6OGURMWWQQ',\n",
       " 'AGTDAOKL4JBTT5SDVOV3ZSXCS4QA',\n",
       " 'AGYHREB3BFUXX4VRFQSIFOS4SOTA',\n",
       " 'AFDVP5WRZBRLDH7CB7FEFG2VFVAQ',\n",
       " 'AFI3TUXXYWYYDQP6BUDPUK2YDYFQ',\n",
       " 'AGLZZQHW5MBEUMIHY2IZ26REOD5Q',\n",
       " 'AGBLCQQBEA4PD6MGEXY6RM4IF4NQ',\n",
       " 'AEUXOIS7Q3J4Y47OIBC76RMCMTYA',\n",
       " 'AHX4WGZDGVXMJ6S2JZZCX2MN3ROA',\n",
       " 'AH5ZIQUR6UB3MQ2E2L2AUAJYGUAQ',\n",
       " 'AEIAFETEQ5YFUJPDFILELKYWVIOA',\n",
       " 'AFLV7X2Y4WHNPT76CSYZG2U3SZDQ',\n",
       " 'AF5LRJELI3DN4FLFEAUVN37ZFGIQ',\n",
       " 'AHOO6GDHAXAZL345Z5A2LEA73HFQ',\n",
       " 'AFTKKX4OHQGOCIYX5V76HYMQL36A',\n",
       " 'AHZLJ6WWYCOAY5F2WCDCNEIGS7WA',\n",
       " 'AEJFXFBLQII45Q2USJ46X2HTNT5A',\n",
       " 'AFCJMVS2UKHVQ477PP4UNIBFLFEQ',\n",
       " 'AEHBZW3HQUZQKKC34LJBFPJAZLLA',\n",
       " 'AGWVYCGCETRNTVK7F56BP3RN6IPA',\n",
       " 'AGEHMZ5JH2YZEATB7OU6FES2KIUA',\n",
       " 'AGKXAK47QQME5XMRMVW24E4NA47Q',\n",
       " 'AHBTDAYUIGWPM3KSBL7TTBRRQFAQ',\n",
       " 'AEWN5A5DYV4LGNLKH2IFMPWWYXUQ',\n",
       " 'AHSBPDTQGLHAZHAGPGXBK6LB55FQ',\n",
       " 'AHII6O34TOZFBJWM7QTGC2T5M7KA',\n",
       " 'AGOIETKWLSZT3OH26LU62IIG2IRA',\n",
       " 'AHX3TJDY2YVI5O7RGFCXSZOMHRIA',\n",
       " 'AEJ2ASXDAMSOPBJII7LVRDMJLPYA',\n",
       " 'AHVS35RNKX2SPGZXPFAA67AQKM3Q',\n",
       " 'AGOQSXZ6ZOUD3J2OGUVCHD67JLEQ',\n",
       " 'AEHQ2GNTHQI2VIFS2GKMYIXV2ILA',\n",
       " 'AHSM667ZJ4AHBIAZLVLPF6WYFIFA',\n",
       " 'AGQHUXEV7M5EQQQECE62IY6O4P2A',\n",
       " 'AHMIVBG2QP5KRP7HHNQSDUMHG4GQ',\n",
       " 'AFRHH4YFBNS45KDTFKUHPXD4GALQ',\n",
       " 'AGJ22PAGOONNCP26EUTCMNVBXFPQ',\n",
       " 'AFZJ7P6ABUSPZDB6VSPF32VBKCYA',\n",
       " 'AG7MEBLQBTWB5727B6OTJR476DXQ',\n",
       " 'AG2LRSFNV2ERTB2I7HJEIRGF2Y2Q',\n",
       " 'AHS7OXDBKV4UNROZCISL2BFK6DSA',\n",
       " 'AEZXCWFK5ZBDG44Y33RZWXCDK62Q',\n",
       " 'AFRDVGXZBI2AAF43EVLEVJMJQGOQ',\n",
       " 'AEPA6MUWWKJY7KMV5USKJYBCZR4Q',\n",
       " 'AHBLEAIRH5GDDM2HIJLADZHFZ4OA',\n",
       " 'AE6BLA52UQMPCNFWDQQ4O6EWRVEQ',\n",
       " 'AEKNBB4Z63VT2SWJPA6IDOLQP7FA',\n",
       " 'AG3SOWEN6EYLTD5OSNSNRFDXVZRA',\n",
       " 'AEU6RBVQKGISA3K3MD3T33IWKS3A',\n",
       " 'AHPRZKEK2IFPZHSPYT5GP3PHG4ZQ',\n",
       " 'AH7DU6DVUSWND6ZGTJG4I4TPSZMA',\n",
       " 'AE5YQ5DEAOKSZN7ZW3GVFD4MJPIA',\n",
       " 'AFJXVYUJP45NTXDCNMM4LY3RSXNQ',\n",
       " 'AHRDUQDO2VNN657C2MWTTBLDU55A',\n",
       " 'AFPBZNBHQCSRCVSNUQQB275G35HQ',\n",
       " 'AGJOWW4ENJUP2UHYCQOQA4UZZZPA',\n",
       " 'AF3GFR4T5YEEDZHHGSYEFIZAUBYA',\n",
       " 'AENUWKKN7C7TIQGRPZWKNCNBERUA',\n",
       " 'AF3W5JIOQGFOEN5EPR3EGFLVPAHQ',\n",
       " 'AESNMPJM4GBQURMSG5KYV3FAOLQQ',\n",
       " 'AENQDZAEA3FEU446PTIPDDYBAI5A',\n",
       " 'AESL5MLAYKT2C2ZXHFSJJ5WTZYHA',\n",
       " 'AEY37WYCYAPGBX4IRSTVY5GZSWWA',\n",
       " 'AGJAJ4L4FTA3EBYQAGBM5MCUW35Q',\n",
       " 'AH3EQDI6OGXVX47RDFRZLKM7GE7A',\n",
       " 'AGHQ4T5US7DA6NM4A6AO6W6R3DNA',\n",
       " 'AFDIRURWTWR647DMU2S55YIKKASQ',\n",
       " 'AHUKKVKERHBSJSWAKR6YLE5RACBA',\n",
       " 'AHB7XPPEFKEWC35IFTFDBZOKHSKA',\n",
       " 'AFKTYUM3CU5PC5R25E2YD5RJB2OA',\n",
       " 'AGL5NLQSQOMVI5JIDDIE4PDC32TA',\n",
       " 'AGJ3JHHSV5TC236WJWX42OO3XIIA',\n",
       " 'AFHB3XEGFKTM2NERIG2F5DR24OPQ',\n",
       " 'AFFRYUF3Q5SIFILN62CKRZLD3D4A',\n",
       " 'AGWPSCRPGSSUHWLJWUFF577TPFMQ',\n",
       " 'AENPBTPGFGY4BOQVFLTLJNQJFPOA',\n",
       " 'AFAJOY4DBSRVBNYZ34RA7BTCULUQ',\n",
       " 'AHD6K2VNOPMGHJSDF2NFQAYER5OQ',\n",
       " 'AGE2P4HJSOP5755ERHGS3PGATIVA',\n",
       " 'AH2RNWBVBEPNFSZ4CMNLZ6SSDQFA',\n",
       " 'AHIJP3LI7XGB7SVSX3R5GXYNSE4Q',\n",
       " 'AGSZDJF5IZ5SWNRX6BYRIQRIYF3Q',\n",
       " 'AGFYXD7RZBLPNOEOVIQX7RAZ27BA',\n",
       " 'AEAO55M7QMVGSXPOSK6BT34A635A',\n",
       " 'AHQ5L33Q6M34TS73VYYE54DXIW7A',\n",
       " 'AGAA5BINIXYF5ZNHR5Y2SJFGKVQQ',\n",
       " 'AEFIKAIZSAB4ZFENNECNYEMKL3XA',\n",
       " 'AGWEXQCMNA6MCDAGB3OKWB6EXDUQ',\n",
       " 'AE77XLKXY53B7TOWB2UYS7RWLGFA',\n",
       " 'AFEHKHTAA3SDTBPSZ6L7FXTBEGUA',\n",
       " 'AE4WYHAQHU55CUMAVDVRFTQEACWQ',\n",
       " 'AHL2ZDHMVBF7HFJZR5NPLE7A4HUQ',\n",
       " 'AE2O2COHLQXXVA3XVGJW3RPWXY3A',\n",
       " 'AEEAFIINBK67D6BFFI4VYYKZ75FA',\n",
       " 'AGSUIXWQBM5JPNNVJ4AKICXEEXTQ',\n",
       " 'AF7ORPNNMGRBFF4S2SHDRA6DV7VA',\n",
       " 'AH54ETTP7HDJZZYZDIGW73RXYLEA',\n",
       " 'AHWUNNWYESUN36AGZGZC5JNPWCWA',\n",
       " 'AFVUL6TZG4LKNVQRSUH72P4LBMFQ',\n",
       " 'AGXERWX6JAXRUNAJTKICQDILADVQ',\n",
       " 'AH2374XUOQZ7ARVRY57XSUG35HMQ',\n",
       " 'AEQJYFOUYMV42QG4N2ANULNNG72Q',\n",
       " 'AFLQ4VL4AXFEAI5AWYMMZNXXRTOA',\n",
       " 'AELVRKFJRE7VHE3KUJMIURYZQDAQ',\n",
       " 'AEU3YAZXZIDXYP5SFXDN2CVML54A',\n",
       " 'AHZEZ2T3MNJALQDQRWBMPWWEVFAQ',\n",
       " 'AFTV5UUTOP32B7VZXWEJF7KOWABA',\n",
       " 'AHD6ROIJ2KPQ775XK42S3FWWA53A',\n",
       " 'AF7IZSGNTU4KXTH64QLO3HNSRXLA',\n",
       " 'AGGN3NKVK6TLQF6DHFWXPJWSWGZA',\n",
       " 'AFEG52NYRA4P4BRYG75BCKQK57ZQ',\n",
       " 'AHS7QRMPVR7UMQJVJ62MLSCVAXAA',\n",
       " 'AGNQI2ZD6GTE43DYJ7ZYX6NVDR5A',\n",
       " 'AFZ5RFTIRKYFA4CFZ2DVQJMTQBSQ',\n",
       " 'AE2IWO36HLLM4RMQYOXJ7KT337PQ',\n",
       " 'AFFHSYLRB26NALD4W3MXYG5BNYAA',\n",
       " 'AHZ3AGFCYFLNN7UY536JKA5X67HA',\n",
       " 'AFJG2Y2XH7L54SCTBBE6KBOCRPJA',\n",
       " 'AESVEY2QBHKVJHMJYPQJAOOF5UVA',\n",
       " 'AFMK62ZECDRJMTXEDWBAQZICIUTQ',\n",
       " 'AE3PIHYP67WWZYVIU3BDPFU3P4XA',\n",
       " 'AEI6JYRC7X3QWQKIXSK6RUKL56JQ',\n",
       " 'AELFE3JUQFHXFIPYAXKM46O4OMOQ',\n",
       " 'AHFSX4KOL775KH5PKY7DPL47ISVQ',\n",
       " 'AEDX4SH7QKTVG4WLQAV2W2E5SASA',\n",
       " 'AGHESF24L6NQPL7I5KGET2S2LJRA',\n",
       " 'AGJIOHW7UWJXJ26CPXIQHFOPUBQA',\n",
       " 'AG3IFZTQCXMSWGWIJ35XWTTPAPTQ',\n",
       " 'AEHUBACOIAJJK273C24NZXQE5Q5Q',\n",
       " 'AE5ZW3ZWCD6NES2BSETDKN2YGFQA',\n",
       " 'AEC5VJRKQFBMI6IVD7SIV6VPWUFA',\n",
       " 'AGTG7UB7HIAUXOJKY3AHFFXAWBEQ',\n",
       " 'AFCXJDAJLLFXLEEIFZEFXJO6FIVA',\n",
       " 'AHNL6ZR7BS5NLVSXIWX7LWCR2OQA',\n",
       " 'AESLQB7TVIGYGNM3UJW5U4VJVBJQ',\n",
       " 'AH5SNL3TKHO733RDOXTIJ6LNITCA',\n",
       " 'AELO6UYUFG7HZ6XEXZ4FZMXDN5BQ',\n",
       " 'AHLGLYVAVNDPHDPNFAU3KID5UWXA',\n",
       " 'AH3PHPGA475UQD236ER3N3TEWYHA',\n",
       " 'AE7UMAW7XQZ53L6YULOLA675I3UA',\n",
       " 'AFG4TXOB2Y3NPVW2KXI7NSGWBVCQ',\n",
       " 'AFBVHEZ4JDX4UOGCH2BEEKFLWTHQ',\n",
       " 'AGY7O2WOYZDY5DL2IQR2OC2JRW5Q',\n",
       " 'AGVPKSOOPUEQNBAPB3N3KZXLMJ4Q',\n",
       " 'AE4W5AJSTQ6VP2263VTSORRM4GXA',\n",
       " 'AGJIGZIJVK6IHXUFTAA3KPQXO4KQ',\n",
       " 'AGBRHI7EQWBSXZHUEMSK26MDRSCA',\n",
       " 'AH533WG3GYRPRO7I2BLA6ZDC64LQ',\n",
       " 'AHEYEDJOAVRGWSKBQDFA5GTNEXUA',\n",
       " 'AGOZUDPZFEAEZUUWCIKHGYD36ILA',\n",
       " 'AHLM4JXYYPWGZINXMW64H3GPV5XA',\n",
       " 'AH53STNBH3SDSHL7VWVQ75QUW2YQ',\n",
       " 'AEZYW4N4NYKP2FHZ2W3ZKAYWEL2A',\n",
       " 'AFSTJK65TRYXTT5NTSKVCAOGOBRA',\n",
       " 'AFHKNOOSGLSLJLBCXPKEMHFCBVBA',\n",
       " 'AGDMDXMIJDHEFT57IY4CYOFJXATA',\n",
       " 'AEO5D5DX2IQ4TPETHCGMQ4JQ6CZQ',\n",
       " 'AHMGUMDCEFCYZVJ23PVTKY54FICQ',\n",
       " 'AHS5V74QV7IYGLVMW3RDFOMZ7DAQ',\n",
       " 'AHSRQPZGONDYZLV2MJTF3D4BOISA',\n",
       " 'AGRVFPV673KPFQNNDYJEBQSTKM2Q',\n",
       " 'AE4ADJVURISGGZJOVGRPAR62HL2Q',\n",
       " 'AFKBKZMA57J44SWZH5DNZPEG4FYA',\n",
       " 'AFMXFXTZ7O5XLNWHDDYRVEPVV3RQ',\n",
       " 'AE7M4P4HUI5AOG3MSR4OA6Q2SMNA',\n",
       " 'AEE7N6LYME65ICP62NY3TQ56CDSQ',\n",
       " 'AGTF6WZCYCXPMRZ3GVNI33TVYVSA',\n",
       " 'AFDRLMJDZG6BYF4LEXTGRJILRTUA',\n",
       " 'AGGFGHYMTAMQMQXHNTXACZJGUPOA',\n",
       " 'AGBT7ITZF6LYTJBT33FFLMJZUBZQ',\n",
       " 'AECQ3CJ2MOJ5M3OIJTLDLFE5O6FQ',\n",
       " 'AFOH7S65F6SNQD6DBAZCCUX4QJXQ',\n",
       " 'AETO7NYEH3RRM575NIPTNVXBR42Q',\n",
       " 'AF5RSDJZD4MOJ4TDAG35NRPLPNHQ',\n",
       " 'AFRKH3VZKY7RGS4WQ57GICIXDF3Q',\n",
       " 'AERIOB4K7XPPLVDCFTD3TRVKGINQ',\n",
       " 'AH57CMDMS37WRD7TIY226CZF3BEQ',\n",
       " 'AE7AZGOYZ6ZN5OKXN5PHR5FDMSGA',\n",
       " 'AEF5BN4AG4SSXE6MEEMRCTHLXZSQ',\n",
       " 'AG2R3BRC5TDKXJD7YT4UUCUDBHXA',\n",
       " 'AFHIRHRFSVM7QSKVYPRTNHJPVOVA',\n",
       " 'AHBHCKV5NMQPGSKAFI27R3NVFISQ',\n",
       " 'AHAEQ7RQYY23S5NT7GJUITFJHGPQ',\n",
       " 'AGVZWORDRMHT3TOQI2DDMPE5ABRA',\n",
       " 'AF53NZGNGHOTXBBPOJGQDOLPSLPQ',\n",
       " 'AHWGMDETAM4YOPMRWQEDNPK2FFPQ',\n",
       " 'AGOJPWA2DHBQ6LAZG7J7EDXZEX4A',\n",
       " 'AEV6IGMVVVABTI5URATQ7PRS7DHA',\n",
       " 'AGJZYJWWBKDWWBHOADB6A6GEPQUA',\n",
       " 'AF3JCSWYZHC7GXVEUSYVYMEWJYFA',\n",
       " 'AHLS3IKIC2VUO6IIODRMM3STJ5TQ',\n",
       " 'AFYOHVTNUKV3GPM3FTYKLSFEJBCQ',\n",
       " 'AGQXYBFQ3KSRQTKODHB75GCAC5HQ',\n",
       " 'AEFQCJVHAPS4X3GMH42XDT7QWMPQ',\n",
       " 'AFGGIBHVPBPIKKFIJSHJUFD2MGDQ',\n",
       " 'AGULDX7JCJ46OQ6TCCWE5WG3H5WA',\n",
       " 'AGQY7JBIFHEYLYJQPRDVMW5PW7PQ',\n",
       " 'AGDHPPLPBC4PNMHOXICHANUHZWSA',\n",
       " 'AH74VGBHMMYJC4IN7O6WSEINZXQA',\n",
       " 'AGZJASWQXGQPGRCJPL3JYPDFWVKQ',\n",
       " 'AEICOPF6SIMLHDN6AFRWO5LVER4A',\n",
       " 'AEQJ2VDN3IIHHYFTSOFDS7HOTTWA',\n",
       " 'AEW4PW5UUBQTCQXAPBHSTRDFEYIQ',\n",
       " 'AGIEMDMHV7Q5LH4Z2ZOYIN7YOJKQ',\n",
       " 'AGVDONXDD3RAKTQ6DHGB4ALOAEZQ',\n",
       " 'AEBLKJYM3TUFYXMQMZ7JJQ7QFR5Q',\n",
       " 'AEK5B7CVRFTAJMGCCK67YXKPA6KA',\n",
       " 'AFF2WORGENMWZSLKMM6QTYFCV7EQ',\n",
       " 'AFBFBBI7YNEXJPCHZPPZSI46I6IA',\n",
       " 'AHCJ6WG3G7OQMO3XWVHRXPKSUFHQ',\n",
       " 'AETXV5LSPF7WTRBALUCV4EWC2HWA',\n",
       " 'AGQ2ZRBZ5MQTODATENH367RVXKPQ',\n",
       " 'AE7A4Q23WBZ26KVLZJ6F6GG2EMCA',\n",
       " 'AFN3NQVE5JVK6TQQ3KWB5GRQEBJA',\n",
       " 'AFTHH3ZTKDBIZGYU4HN2EPJQPWUQ',\n",
       " 'AEN5YJDAP4NV3NTZYCKV4O65I52Q',\n",
       " 'AFTUENXYKL4CXNOBTPMAQMNFB7ZA',\n",
       " 'AHVYB7MPGBYE7RZWNV4MXX74O3KQ',\n",
       " 'AG5FYFGMZD6EDNGBEVZ5646BWKUQ',\n",
       " 'AHQ2ZPDPSH45YGBMHKGQNUP7IORA',\n",
       " 'AH5LBUMFQNTVAS4EBKUQUTBODRRA',\n",
       " 'AHLDNITMEX6WJUPOEUR6PJ5R2E6A',\n",
       " 'AESZ2L4KMIHTGUN22GPTLUSQISPQ',\n",
       " 'AHKAIPOQNCTA7VFNC64PFNKWMHKA',\n",
       " 'AGKHGST2GTQKY6DAIMUQU47SKAGA',\n",
       " 'AERC73THDKZNBOZVZZL3YOE5Y6YQ',\n",
       " 'AH7QB7PHK2VMVOWNVCXURXTSFMGQ',\n",
       " 'AG427QTH55YHYZZFPYHMF5NEVEZA',\n",
       " 'AHRFPEZKJXAB74PPTQM5DAERB5XQ',\n",
       " 'AGJ3PMFACCHBVFOKS7YR2C7QSMUA',\n",
       " 'AESJRFEBEUPL77FF6AEGVOLRXCVQ',\n",
       " 'AGLXSDQJXANN3B4XVNQ7BNONAAOQ',\n",
       " 'AE66VGSDY2ZGFVOUQY5IQIZSZVWA',\n",
       " 'AFSZYNDH36XNUK663O5Z4LLCKIRQ',\n",
       " 'AF6MZRX3MFMMZVCG7ULP5GSSHFYA',\n",
       " 'AFQBLDXTMXHI3IORXZRRYAR7NZTQ',\n",
       " 'AHE34SEBG3GU4NSNJ2G72XZKDC4Q',\n",
       " 'AGA2JM5HXN2BR2YEUV3YZKE2IYTA',\n",
       " 'AHKHL4X2K7PVUMVD7EPP3MQZTCCA',\n",
       " 'AFAIC3MLL2DAU4PHQUSVSRBZO4KA',\n",
       " 'AF4MX4E632A77SHLLUVNQ2TBDI5A',\n",
       " 'AER3Q5DBWUE7LGO7UCULTAECTLYQ',\n",
       " 'AERB3YWV2J6ROPBOAX7AFDLSYSBA',\n",
       " 'AHPY4IM2EPDHAI22BLGATZKKDH3A',\n",
       " 'AEKWKZTVTOVO3V7UJFUMPYWICCTA',\n",
       " 'AH4GZIE3T3UFQ5NMFP53XBNBOTJQ',\n",
       " 'AFATBWMWSD42ZAKK7RCMLOJBDL5A',\n",
       " 'AFLWEVZEHHJW4432BVXFHBXGL6HA',\n",
       " 'AGCHSQSYN5LNK4XWSFYWWSAJKZGA',\n",
       " 'AF4RYAW5MFLCHY2DPYT26XJNUCEQ',\n",
       " 'AFKHUHRODHGWF7BHPWMDYHK2M6XQ',\n",
       " 'AGDHLJ37V5ZD44SDTQJTU6UDAG3A',\n",
       " 'AFGMR6LLYOUOPM6R6JYJNYIGIAEQ',\n",
       " 'AHECAD72VZMAKSVUA3GTJ4AYSJLQ',\n",
       " 'AGKMNIDKCCA4F3QEI256BUOBP66Q',\n",
       " 'AFUK5QF3ZA33SWAKMDDVAPDOQXUQ',\n",
       " 'AGPPTFCTGZDJ2OOORGKX5TLS5RCA',\n",
       " 'AHFJKBHJ5O6LOIT7YPNGUSK4IFUQ',\n",
       " 'AHV2Y46MHTKSPHUUUPA4PZWJWEWA',\n",
       " 'AHARQLG5GMARIRO3XVT4JQNUWP7Q',\n",
       " 'AEIAY6B6D5XJX5Q6NF6AMYZFNELA',\n",
       " 'AH4RD22RBSBETLDL2ETQCXJTFXQQ',\n",
       " 'AG2WAOETOWHKYNWMH2DZEUPJYA7Q',\n",
       " 'AFPFOVT5YKCROG5C5WZABHLWHOGQ',\n",
       " 'AE33P43ZXLYL6HX4SBL6CPLQI57A',\n",
       " 'AFE7LB5C66WREIGZ7H2T4QVDLYZA',\n",
       " 'AFN5PQQFEIUX6YJQ55BTGSAWGLIA',\n",
       " 'AEORXGBSXCLHJNXMMHZW4G5FHBGA',\n",
       " 'AHW3S2NZ6YF5MFKINZ37AXJZUUMQ',\n",
       " 'AHCLYEE326F4X3AB3QEDU2MAJ2NQ',\n",
       " 'AGGX7XZ4FEWCWPHYEN32VNRL5BRA',\n",
       " 'AFXQ5HPMVUOF7LANMEETUF5AHOZA',\n",
       " 'AEG4GFWRQ4B34OETYKLASHSFEWVA',\n",
       " 'AGNJDVK2E22TGA3A3NOPKM6RH4KQ',\n",
       " 'AHOQEVTRBKQ3R2E6XFGT26LSXMMA',\n",
       " 'AFSD6VLDPN25IMZQPXU6FYKGFAPA',\n",
       " 'AFXAKNKBHYZTXAHQVMXKNGGOCPUA',\n",
       " 'AFJZBHZBTOVSV3JZEEGKW6LOTHPQ',\n",
       " 'AHLIX7WMLQEWR7HQFKAFBHPX5ECA',\n",
       " 'AHKGEEBSVQ2LFARV3FYTJ565AIZA',\n",
       " 'AFHKIFGBH77NZ6VKEXF6YYJP5THA',\n",
       " 'AH6LOQDP7URQQKTNVJCBPTKPO5QA',\n",
       " 'AENBKIVHX6NSS7ORR4FZYR27AQWA',\n",
       " 'AENVE6MZQUMXUV6STFMMVW2RZO7Q',\n",
       " 'AFHOJH2G5D776XEFAPZJY67U4BRQ',\n",
       " 'AEVS4RYFVVBCBLSQFCMC5LJJMLFA',\n",
       " 'AGFY3736GSG35CMOXRHFLJEMR3BA',\n",
       " 'AFJKVSD4WJI4GKTN3PEPIMPJ7NRA',\n",
       " 'AHXOVMQLZQ73EC7LA7OUMIDJSWRQ',\n",
       " 'AEWASOEHWWD676Z64YTJLHH437RA',\n",
       " 'AFSZHRXEXPREMNTGL4ELG2EHHE5Q',\n",
       " 'AFLOOKAKRMQ6RKNEJ2IQ32UIDQLA',\n",
       " 'AHV6OOEFSRJNTOI6JEHBLSTMBB2A',\n",
       " 'AGDMTML6FNXKRZJTO6JJQR6JMGMQ',\n",
       " 'AEHUG5N2NUL4MX5BWTIVDI6LZMGA',\n",
       " 'AEQJLPFG3RTLMU4WUIPR7NXYHHXQ',\n",
       " 'AFZR6PH4RPGVV3SBBTAFFW6OG7BQ',\n",
       " 'AHPQM5UDZU77PZA7FS7N7JOI7AMA',\n",
       " 'AGOQBLHR632JBW3REFPWB65XFXJA',\n",
       " 'AGOV353DRWJ3YCNGG3FFMNV766TQ',\n",
       " 'AHIXHW6SAEATTJX2QNCIFRTO5ZPQ',\n",
       " 'AFQRGWQFN2MDHXMM3HVSGLN4OXQQ',\n",
       " 'AFAE6EAKV2DFOO4GBSPO2LEXY63A',\n",
       " 'AG2WXBCLD7XU3RK54G7DHQCSQUQQ',\n",
       " 'AE2UMM6TVXUT6M26B2MU3FET26LA',\n",
       " 'AF2MZ3KMHFLHQ6KSY2RA6QDFZS7Q',\n",
       " 'AHYIFYUXF5XJ5QN6AX2K2NWO52OA',\n",
       " 'AG2J4D3DH4LYYJOF47SFZHL22CXQ',\n",
       " 'AGNPXDLZVEDG6ZUL675JVU27HA6Q',\n",
       " 'AHSF2A2ONHAGPA4JGAVH4M2IS63A',\n",
       " 'AF2JJDCGLXCKOMF33K2LCCEMG5SA',\n",
       " 'AHAAXOHOMPBXRYGLRTCQZSA42W6A',\n",
       " 'AGMA2E5W7VZCIX3SPWF53IIDEZGA',\n",
       " 'AFVKQW77BT4UZ6CAHNNJJ4ZT43CQ',\n",
       " 'AFM7W2BAQHEV5XMLCKYN76X6G6CA',\n",
       " 'AFHUXBWXZJ7723ALADZKUO2RBDVQ',\n",
       " 'AHDCLOOIGM25F3EGKMAPLK4K2HUQ',\n",
       " 'AFAQK2RODVCOBG37KLPKCDAPL7UQ',\n",
       " 'AGV5MB3E7XH4MQS5W7JHOV3FIYBQ',\n",
       " 'AEY6KZ7VUJCQXNYF34JGG5ZVTM5A',\n",
       " 'AFL6SKHYEIEYU3TDW24BFYMBNOQA',\n",
       " 'AFIJ5MAQIXPFPQPWL3VZBJNDMN4A',\n",
       " 'AEML5Y7ZQD26O2RCLRZFXMU7QJUA',\n",
       " 'AEPPSXZPIO7PACC2V7NLJ4ZZUFWA',\n",
       " 'AESQBG5URB3HNRI6BVQNEKMMN4VA',\n",
       " 'AGFTSTY5CNBD3A7NKZKABYR22M3Q',\n",
       " 'AFG2ILBZP3RM3HEDSFSHW4FYIVRQ',\n",
       " 'AHQYBTI5M6XR3X3JSSJP6OAHGVOQ',\n",
       " 'AE543WBTNJEOOEO2ZH3HPSUL42LQ',\n",
       " 'AH6KZLUO6D3IJQYMAOKAHQEOHNKA',\n",
       " 'AHS6ST563QHVF4VFXYR2FJFYAJ4Q',\n",
       " 'AEXROA7PICKYLQ2LSB4FS4KGZC3A',\n",
       " 'AF4JGXULIAGTF26ESL37KNG6EVKQ',\n",
       " 'AGZRYFPNAQAQEXZXN4FHSA7KTHJQ',\n",
       " 'AFIPVN7Z37PHK6JC34KSTPZHF2SA',\n",
       " 'AFZUYEVLMRMVEQPS5YI7CGAFOMUQ',\n",
       " 'AFHOO7ESZYNEMMSH23IETSANZDQA',\n",
       " 'AHVU553P6N33ALSKVIIDWAJIMAWQ',\n",
       " 'AFPXLXQPRJPRBAI4AW4ABYD7SOIQ',\n",
       " 'AE7FTPDDBFU4TAEC5QJ3QBYC6FXQ',\n",
       " 'AE6N4O45KGZQKLHAEOHBGNMYLUOQ',\n",
       " 'AGKPZSV7C5XN34MFM54CF7TBF7TQ',\n",
       " 'AEHGXUC6WPFNOHF23QXOZ7TJL7KQ',\n",
       " 'AFQJ7QUNZK6WQYDV2DANG6D5RXLQ',\n",
       " 'AFBAOEKZ6BCBCETHA7LJ373PDKJQ',\n",
       " 'AFZCM2HWU7IJVTTAU4UOKR3MNX4A',\n",
       " 'AER2TLULCDIATGSZDGZIRUUL3NQQ',\n",
       " 'AFSBOYIXHWJS76F6HUW4HKTJGQZA',\n",
       " 'AHLU2BWVBSZZGDSTVDBVBJADH47Q',\n",
       " 'AEFLKEQOM63XZQWNLCIN6NRSXGMQ',\n",
       " 'AGIC7HXULPGCS7SXA4NCN7YJS6HQ',\n",
       " 'AFA65BTUQHNE5CB5KZAMQ4BOCQZQ',\n",
       " 'AFTP2FDKXJ33TG5F3PEQI5EK3PDQ',\n",
       " 'AFSWHHLSJCKE5XSYJ6T4SSCLZHJA',\n",
       " 'AHBQDFQBOP6DF2CNSCWD7PO2EIUQ',\n",
       " 'AEG5OYKM4CZV6JTNHQWJF7RNFXZA',\n",
       " 'AFVZFW6UM5E4VQZXFEX2NRGK3PCA',\n",
       " 'AFKTZCMLBCN2WYRWQ6Q4UFEKSTTA',\n",
       " 'AEYKGOYIU6NZP52ILZEJVWY3PVQQ',\n",
       " 'AEVOJXQF7PHP3XV4JJHNYWGKW2MQ',\n",
       " 'AH3Q6BADPT7AL7DXQNNUDXTAVCBQ',\n",
       " 'AGIVCM3RDVGM4ELWLXBSBT6NDYWQ',\n",
       " 'AEBKTPDS3OUEPATIVF22KSBPPMEQ',\n",
       " 'AGUDDHGFNG4PONW4ZJEERJMQC4BQ',\n",
       " 'AGVMCRHJFOS24KZBCTLYQZRJU6OA',\n",
       " 'AGRX52JIUYP4YFH764FNU7XL3GKA',\n",
       " 'AEB3V5O26N5ORHYL6NPR2NRLZATQ',\n",
       " 'AFXDCTK3UCHKYCISWGBFFL23ERGQ',\n",
       " 'AHTIUUC2JES7ZJHMM6M6SSUQ2ZVQ',\n",
       " 'AGJFVXTGOJ3QGC6UYTJCQZRB7DCQ',\n",
       " 'AGHQBYPBILHPWSS7TK3XVQUTEOQQ',\n",
       " 'AHIIKYEXD7EZYGN56TRVGH6ZZUCA',\n",
       " 'AE4YBNSIRJINMVEDJZ5VWBBL57UA',\n",
       " 'AEP5KQTLXHFD4BS2XRKIA74BJKVA',\n",
       " 'AGVGYZXGZFUCHI6CD323EJSV4ABQ',\n",
       " 'AEVI46OFMLU6FCGHROFPHVEK2JGA',\n",
       " 'AGXRU5H5BEPOWWQYMRMPZF662CEA',\n",
       " 'AF3GJZPN25LBZOYFFN232GG3DGDQ',\n",
       " 'AFGXUPADKXJIHICZFXEZ3W3QRSWQ',\n",
       " 'AEPDWVKWVMZQMD27WKKOILGVKWAA',\n",
       " 'AG6HDRWZHNZUGEUKKT5NQSSBI6PA',\n",
       " 'AG2QA2Y6KRZBE4CKMJD7CKPJLQRA',\n",
       " 'AGDKHCNC7SWDRP7AVK7KOKYSNCLQ',\n",
       " 'AFSMJYLF6HRY3XTVF6WGDGOE3MHQ',\n",
       " 'AHLJKURFF3C3KCDPLMFTHRJUGKSQ',\n",
       " 'AH3UAXVGWIU7NDGHX7MTMR2RT7KQ',\n",
       " 'AGXHDEGP765X3DIY5KSKGA5P3DXA',\n",
       " 'AH6IJJDMAT5WMU4JOMCFGVCV6K2Q',\n",
       " 'AFJKJJZPOUXFMYTEPDMDHZFVGPRA',\n",
       " 'AHQDKUQ5UEEBS63Z7MB3RKU3FG2A',\n",
       " 'AGPI32Y4K747UGC6GXXFW26SK62Q',\n",
       " 'AEDQVAEWD5E7AQL4UXDUBTZH2EQA',\n",
       " 'AGQJZXUJNQVK2SBUIHWCGXSGNVBQ',\n",
       " 'AFA77WV62FEVQCVQFPZ7Y4YVXGIQ',\n",
       " 'AHUGDZKBWGJZAZNH4GSIQLYPPG5A',\n",
       " 'AEAQW5GTH4SDCNBIE7HAD4FWRMGQ',\n",
       " 'AFPH3PIY4ANHG7OVACF772HNATFA',\n",
       " 'AGMWDEUXMVXT6HJTSHQZTBLMOQHA',\n",
       " 'AHTVZE47WLY4VXGAER26WWLOANRQ',\n",
       " 'AGTX2WTDHV7TVEUXJQK7YKIGKTXQ',\n",
       " 'AF6LRJDOPDNUAEVJ4XSAY2HTSEAQ',\n",
       " 'AEUHHBT54LFY3BBZWSFX5QACITTA',\n",
       " 'AE5R2SNLBER5SNUQBRRHXBS66IKQ',\n",
       " 'AGFCBCQJQ6MZGKTB4L5EXFDHAJSQ',\n",
       " 'AGGRWMO7YVF3GB7B5V3YHLIERKJA',\n",
       " 'AEFGBX3W3NI6BU36BHSVDGJAXZIQ',\n",
       " 'AHBW5QYYPQLYKFGHCUMKJ7ZPHMFA',\n",
       " 'AHB6B5MZP6EZAUCHGEZAFXW6ZE4A',\n",
       " 'AF3KZUVKXCDCFI6TRAO6US4HAZ5A',\n",
       " 'AFI4WXS4E6A5V62ELV5QUVR2SEJA',\n",
       " 'AF5QAVUVZIB5RLTTHHSLZSQMCXCQ',\n",
       " 'AGDNE4PK6HBLRRL7NP3XUYIUCN7A',\n",
       " 'AFKC6JSKZ2WAJOIPOGAWKKGJQHUA',\n",
       " 'AF75E6WDZSXVTZF43L3UT4W5XS3A',\n",
       " 'AH3NOHX4Z7BYTIRX7M7BLNJNRYNQ',\n",
       " 'AGEMJ7CWUBMEUV77AUUCBKRU4KMQ',\n",
       " 'AEQZTTTAJJLMLWHAUZ3ZCH6JQ7XA',\n",
       " 'AH72BIHDU2IR6ZN7RUSYQVEK5PYQ',\n",
       " 'AGNRWYZZJX2QRQFBYOCYEXWX45AA',\n",
       " 'AHW7SZY7GQ6GLE5C43KNKQ7JHHDA',\n",
       " 'AGIW4FVKQ4TWZ4OFWJCGOUOKW2FQ',\n",
       " 'AELROBMOTC4JWSF6T7DVTME7XZDQ',\n",
       " 'AGKMWZKTLZKM4XWT6JY2YKLOJNVQ',\n",
       " 'AED6BVCSA5WUZCDSD5TIYSPPTI6A',\n",
       " 'AH6Z7VV7MLZCUQF7P2TTREVIM5LA',\n",
       " 'AGGJPPDRECMCRJB4RGWU6KBZ7N3Q',\n",
       " 'AHZMSDMKKVEMIUQUOJSSCJZVUNVQ',\n",
       " 'AFLTQTMMEAAEXXBHKOFDIOWGCGEQ',\n",
       " 'AEQ36I3REY2TFLWE5CJMR6JMXWLQ',\n",
       " 'AFXI3FCHG2DZBJWIXMF2EXJIWQFQ',\n",
       " 'AEYT5IQPFKFFBIUYH25RR24GY2EQ',\n",
       " 'AFR2TXBCNCNJQAU54CR2UZSVGKVQ',\n",
       " 'AGPOVNFMLHEGQRHT5DIE6BUZSNAQ',\n",
       " 'AE2RGPI3R6GYZ6BR4KYIO5AKKYFQ',\n",
       " 'AH463DJIHERGPDI6PYB6OGO3432A',\n",
       " 'AEPOWOYCMOOQLGVE4FPQIWNWC7ZQ',\n",
       " 'AE27DDZ7YFX33C3PXWKY24UWLI2Q',\n",
       " 'AHCIEHSHJP22EF5NROKI5UNFZLLQ',\n",
       " 'AF37T2NEL42GSFITIC26GLU7YKUA',\n",
       " 'AGEBYIY6ELYFK7YTP72ZN3YY3Q4Q',\n",
       " 'AHPWHMFK4UJBQZTXV46ZMRTHCP6Q',\n",
       " 'AHKYWRN5PTBYYUOJ7QLQYN4CUDLA',\n",
       " 'AHPJD2LJINLMRPGHCYZ72PERZLPA',\n",
       " 'AEE63D57E46ZX6I4KRV226P6RUVQ',\n",
       " 'AEG7SKADADUOLJAVSYDBHYLQ7BJQ',\n",
       " 'AEX4FTPXXCF4BE2TM7S4FX6VRUVQ',\n",
       " 'AFT7SMCKEMD6RRVQNP4IBWRH7RKQ',\n",
       " 'AHN26SK6LH2LZDVBYNMBLO3ABGEQ',\n",
       " 'AGIZFIRUC3MEHJAECKKZJA7H2L7A',\n",
       " 'AHIPI7Y7PIUS7IWR2QMSPACEDZ5A',\n",
       " 'AGVXOJNHCOSE73QVJD574MJLCVQA',\n",
       " 'AHVHGH4QV4SSDONTYN6A6OMEFWOQ',\n",
       " 'AEASG6ZIOMYBW5MSO5YBTNYE34RQ',\n",
       " 'AETDJGFP4ERJWVVOSDGTURW6HMZA',\n",
       " 'AHHZ2QXJB5UTHEQTSV2HUDIIS6EQ',\n",
       " 'AHOOC3ASL3JCHP7LOM52DHXCQS3A',\n",
       " 'AHQ32E3ZDWCYZZYQLOZKGQRISKKA',\n",
       " 'AGHND6PCRSDYTTIDVQDEMG27IOFQ',\n",
       " 'AGG5FYXKHPPS5WUGLHBYTBPEA5VQ',\n",
       " 'AHDH4NNFHXCYCIIGOTMWAKHRALPA',\n",
       " 'AGXTKGKKWFXL4PEVRLNO5FAD3PJQ',\n",
       " 'AGYKWW7GE7JMQPNCSXPF6OOTETOQ',\n",
       " 'AHIEB63437OBL5MT6NZ4TTRA6MOA',\n",
       " 'AGG5J5YGSPK2EUBHHUXFYUAWR4QQ',\n",
       " 'AEBNRIKQM57E45HH7FBYGLMGJX6A',\n",
       " 'AGW6RFGQBH4OWJRVGHZOPAYGK6HQ',\n",
       " 'AHCOLDWOZKAEA72YWVZ2WY53DHUQ',\n",
       " 'AEJWEMZK2WNWLIWBO52DH4ZC4QYA',\n",
       " 'AEA2TKC2COWHLD5N26URAUMZFCLQ',\n",
       " 'AFPW2ZBUQ36BROY6YODJNT2QSXSQ',\n",
       " 'AGH4AD6WWLFDCYWWZK2J4EO5PZSQ',\n",
       " 'AFCE7Y3E7U7O475BAMC74ZT4LYOQ',\n",
       " 'AEPXXPVUHVDJEF2GGMDHBKWVNMUQ',\n",
       " 'AHJ32XR7SRBKUXQTMETDSEEXVCAQ',\n",
       " 'AE6N6SYHYVVRIOZBGKP4ZEBFI3HA',\n",
       " 'AGKZOPQGLLJKHQS7SBRWCWWBZPPQ',\n",
       " 'AEW3ESQGCX76YYTG3BHSMPE5VM4A',\n",
       " 'AE554DFKM7QU4VV2GTN5PE2OV3SA',\n",
       " 'AGNAHCAZQS5L2W5VM5GPYH2CEQCQ',\n",
       " 'AHQ6BWYJCLUBCRVE7HXPRF5PEHLA',\n",
       " 'AEZX62QXBGX5VERSV4G6L2RFXLDA',\n",
       " 'AGY3QCQ3HVKULTRCEJLOWN3TA44A',\n",
       " 'AEUJF45YH32UZAZB7SYVRCVUE74Q',\n",
       " 'AFIPVFSZ2S7TXAVWOUUKRVDR3ERA',\n",
       " 'AHNNS54ZKY6HWYTQQX7AGGHSHW6Q',\n",
       " 'AHVA7ILT2S4W65SKGBXLTZKZYSXQ',\n",
       " 'AEAWX4X7XBGVRXIOJ2IHRJPREJWQ',\n",
       " 'AHSPN33FNON2MUEVYMY3EW44INIQ',\n",
       " 'AE2DN7IXZQPTHGUAB63VV4EHRQ6A',\n",
       " 'AFS32Q4UBO72G7RL53ITMQI35FZQ',\n",
       " 'AFUF3FFCXJTKK4NXZWYXURS7TKPQ',\n",
       " 'AFIFK6224VXEZBT3YPAFLPAX6VXQ',\n",
       " 'AHXBD62INYQWKGWXTH34CTV7DYQQ',\n",
       " 'AEJCAYFZJKBEFQIQLKNMS6VQIGHQ',\n",
       " 'AHDQ7X27KGXA72HV2JO4HPD3CCUQ',\n",
       " 'AEOBSWKAPM77YGAL4DI7AJLJD3HQ',\n",
       " 'AE75F3J4Z3IFYZTWZ5UURACVIWVA',\n",
       " 'AHJEECBDWBBRFJETIRQWG3HVYAMQ',\n",
       " 'AGGTF2GGIOEU7HAS2GLWW3ZPYHMQ',\n",
       " 'AFJPY3VQFP7YRCLFSNDYF2CTZ6ZA',\n",
       " 'AG4OI4ZCAMWXUNUN5B2LFQ7QUQHA',\n",
       " 'AHDVI2FP7F2R73YU6M4SPPN45UPA',\n",
       " 'AHFV3ZJZIOJCLRHAQH32AU3H7EDQ',\n",
       " 'AHLAGU36RJMAJHXNREHTDBZOYQHQ',\n",
       " 'AEG5J3OJB36BMJTNR6DDN37AMIBQ',\n",
       " 'AGQ4B2JTWGXI22WVY3FKAQ33GEAQ',\n",
       " 'AFPJC7TQJ3AMLHQEUNSP72HFVAOQ',\n",
       " 'AGRR6CKVQTT3WRYLFW4ULLUBNZPQ',\n",
       " 'AGDXKMOHT67ANJY37XFYKVIBCEUQ',\n",
       " 'AF4AOGKYW2VADSCWWOL7U4IY5KKQ',\n",
       " 'AE6RXGMIO4HFX4QVXJI27A4PIOOQ',\n",
       " 'AFVHIGNVGFQ6JSMAKSOBBMUVWTHQ',\n",
       " 'AGUNOSDJCANQVNGGZ5WSR5NIE7WA',\n",
       " 'AH23LMNVXSKY5UTPHUZHW4YXYGQA',\n",
       " 'AEDAU2VUD2BV6G6IXTDSTLJPZLOQ',\n",
       " 'AGWPD3FGGRFF33QPEAUMQLAWSLZQ',\n",
       " 'AEPHIYFDTGM3U5NLM6XNILZD67ZQ',\n",
       " 'AFI66XGD5RM223FDGQAZALYKFVBQ',\n",
       " 'AFWEOEXAKET2K4JW35PS3MRYCHTA',\n",
       " 'AG3PML7RZ77DXJYVGTMAU54MAUYA',\n",
       " 'AFRDW7VK346NLKUFFFICYEX7GNIA',\n",
       " 'AFPIAHWLYTGHL3AUCDEOGUJ2IAJQ',\n",
       " 'AEBPEG4FYC6LPR47ILT52GE6XEDQ',\n",
       " 'AG6UTK42FE32SSQA34JFHAF7IBKA',\n",
       " 'AFA7JGUCIK2ZYKMWFA5JCKNOP27A',\n",
       " 'AH7XJMBQY3JZE3R5GYT5M2QRKCMA',\n",
       " 'AGSYGR6YDIAYHJCLWGXNGIXMTMIQ',\n",
       " 'AFBZUJOYUIHPCL6CNN6N32IYE3EQ',\n",
       " 'AHIYKGVHQYUAKGLWYKBWT3DZPGOA',\n",
       " 'AHMRMXZ7OTIC7Q437V6HEYKN2HEQ',\n",
       " 'AEKHCGR6FYKPTG4FA4LK5YGWOOTA',\n",
       " 'AGKDIRDLJZZQKDLOTV7JUVYCNRKQ',\n",
       " 'AEAT33AF6CYCRM5J4RQR7WI6NNCQ',\n",
       " 'AHUBZBDKWVD6SUFKHO7SBIJ5GHKQ',\n",
       " 'AFBD4MDCRKUHJHH2D7MMZQGAOXJA',\n",
       " 'AESTZJBQJLDSVAYCHARZQH2RRXUQ',\n",
       " 'AENGE7PGDMYYKFJQBFQJTBQB6QKQ',\n",
       " 'AG6PRLIE4TV7DPBWPSLC3KNCUJWA',\n",
       " 'AHAK3KE3PRYSOITVOALS34ZAZWBQ',\n",
       " 'AHPHTOTJPYHG6ABOXBRE6ACZETCA',\n",
       " 'AE5ZEQC6UUNA5LHYOV4LEKRIRTDQ',\n",
       " 'AFCLT2ARQ46ZCWSIFD5DLUJ6SMRQ',\n",
       " 'AH7WWUZKQKZSBKYMH5TD4E2WCACA',\n",
       " 'AFF4I3XETLSEPBX5GAUPM3JMBGPQ',\n",
       " 'AGSDVCHWLRDPJOJ4PVPDPJFUUATA',\n",
       " 'AGJQHSM2RHOR6P5WVVTZBU2CCZDA',\n",
       " 'AEUJVJP34ODHTUHK5GO2NPNZASDQ',\n",
       " 'AGWYFO6NRN56GV3WIMLX33RY7FZA',\n",
       " 'AHAKKFZQMANW6BMCHKRUJ7GXV47Q',\n",
       " 'AEH3HQOKMH5QZ54FNP6VA672EHIA',\n",
       " 'AH4NKASQO64HM75TRKXUU76SR6VA',\n",
       " 'AHNLMF5AZ65FOTHXLLJZHIJ3WWVA',\n",
       " 'AGHURBNCNDWZUFMJYQ62NVRAXTWQ',\n",
       " 'AHF7G4OGPHBZVJVUBANHTYRU7F7Q',\n",
       " 'AHLMEZ3AQHTPZROJM5NGIXHA37TQ',\n",
       " 'AF67YYVDRPRZYXXQMV7Z3B4XZHHA',\n",
       " 'AH7J5LX5UYPBRT5KLM64ZPB7WDCA',\n",
       " 'AHHHSYH2UPU7QVPKRYSLTOVZHIKA',\n",
       " 'AEDBZUQW2ZFYSAFNTINEGE65FZ6Q',\n",
       " 'AE4UFEGBPF6DNVFO33ZVTBCCCBLQ',\n",
       " 'AFXB2AM7DIVLG4EBZTICK4H5XU3Q',\n",
       " 'AEXJPJDK6MPTQMZQKU7FXMRQEJZA',\n",
       " 'AFTFHZV3NXJM2WCUSLTJVVSYTGCA',\n",
       " 'AG7ICHPTK4ER2ADL4XM643RGY4VQ',\n",
       " 'AEJ5KTXC26VWJBNDXJUYJQJFJ66Q',\n",
       " 'AFGSZUC54LQFJOPIH2DAEWBDA4PQ',\n",
       " 'AFJ262FXHYQZLIFG5GB25MMGLC7A',\n",
       " 'AEXJLVKKZ4BXTK5NE6BLFJPYLFWA',\n",
       " 'AENVZ25KMXOJ3QOCTIWGR7EPR5MA',\n",
       " 'AEQUCDYRNVT5KBY4OAXT6R35UWJA',\n",
       " 'AFTTUHZJ7XAOMG5G22OWFHXEK25Q',\n",
       " 'AFMNXZPT2Y4CPMOG72YN6KZYP5TQ',\n",
       " 'AFF3WKSGBUYCVYDHO4DPGHALHL7Q',\n",
       " 'AFXE2KWLNM57P6ACH5XUTWIKK7YA',\n",
       " 'AHEXIKF4FWDFEEJMH5KDZKUEBMSQ',\n",
       " 'AHGSXASLHP2NRDPEIHKYJEBIUF7A',\n",
       " 'AGJPRN2QGHOSDXCJK5WGQMFZ23BQ',\n",
       " 'AGQEGMZ3JBVGRB2APCTBBFOYJKNA',\n",
       " 'AEEBOZYTWYYOHXMLQLYX3ZO62NXQ',\n",
       " 'AF6MCVMEZX4TIIM473UYJPG57CZA',\n",
       " 'AHOVSO6RO3YOUDPEEO3FPXLJ67YA',\n",
       " 'AFJT5KPP4EWAAJM2REWW3YHSGW7Q',\n",
       " 'AFVSGA4ENZP44H7ZPLGO5R4AQUTA',\n",
       " 'AFFF6XKKI4PRIYXE3G5G7V76UZ4Q',\n",
       " 'AEI54SZOAZNGKYQXL32QDAAXTHMQ',\n",
       " 'AEJXOFG2HM3WJO7KIW3O6B5WAU3A',\n",
       " 'AGE3A6PWYCIFIKHEQJO4MJQBSJBA',\n",
       " 'AHSSU2G32CXYWEZYCFFMHNYYZGQA',\n",
       " 'AFQFLUUQ4MZTDPSF5EN2DW7RHVRA',\n",
       " 'AEFFKHR6DXCY7ISQBS65HR7ZK3SQ',\n",
       " 'AGS7JUSL6EWGLIUDH463LXGFWOHQ',\n",
       " 'AHSQ4EGY5L5JTH67NRG6OVYTTVXQ',\n",
       " 'AETH2FGXMTFQOVMADSCDJLBYM4XA',\n",
       " 'AFEEBEMALHPVMUT6XC3NMZ2T3BPA',\n",
       " 'AHOOOFNAGEUJOPHLM3QEQJOLV6RA',\n",
       " 'AGIGCUKGYMVLB4X4SGZ643SSQB6Q',\n",
       " 'AH7WETILZ5N2USGDGFL3UBKZKNCQ',\n",
       " 'AHHARYB72ETJUR7TSXZQGEO3A3AA',\n",
       " 'AG5ERZBVFIBV64VSG4HMB3CR6NKQ',\n",
       " 'AGXP3XMC3EPG7PSA2OSCQ4LRDQLA',\n",
       " 'AE2MMNHDYF5F5GIYC4E75P5WTP2A',\n",
       " 'AFQM5OZ35OOBXPE7F35PJSM4UEVA',\n",
       " 'AGHL7H5YG44VIVUGC4MVRYXOHK2A',\n",
       " 'AGLSPDBSFMOT7PN37R4MJFCCJHBQ',\n",
       " 'AEDRCVCWSB3EVNWTME7KK77ANNFQ',\n",
       " 'AH43N4OCDZXJ4X5MDJFWH4B4V54A',\n",
       " 'AEZNOQOTEB3SN6UBC5PGZZR757TA',\n",
       " 'AHZ23GQVQFS3TWDIEWWUVQCDEZWQ',\n",
       " 'AFG7J3W2BJST3FS4BKVWU263MAKQ',\n",
       " 'AFQFYFGS5USIMUHFCLWOX5F5KTRA',\n",
       " 'AGY4P7WQDP6P643YQX2VTEIQV7HQ',\n",
       " 'AHVTPBXKC2KAUQN7IOEXUEWICZHQ',\n",
       " 'AHDIOF7B5L6H4RAW7RV5QDRWN7SA',\n",
       " 'AG2MWBUMN2BO2E4LBJMNYHPZUFCA',\n",
       " 'AGYIJTR7CLSAG6IT7STD6H6SSZZQ',\n",
       " 'AEUZZ2L7XEORCMXLJGAKPHVVON6Q',\n",
       " 'AGRBULYBERCQSITAAJ2HL2HS4Y5A',\n",
       " 'AFZGALGE35UEYIJSVIYPSP24ODXQ',\n",
       " 'AF4PWKKJUKOS5P6IYWADIS6Q2NKQ',\n",
       " 'AFNHSKEX6U6IF2GEI4NHJ7EPPLEA',\n",
       " 'AHKKV327QVNPCCHKWKHEOOO26XKQ',\n",
       " 'AFCNRXUGZ3MKDESRQ5GW2EEO6W3Q',\n",
       " 'AGVM7QTFDH7BJGLOGNGDFR3DKHXQ',\n",
       " 'AG2ZGNYA3KHHZ2S5G5I6YWBGVFIQ',\n",
       " 'AFAUPSHL6JSR5UUNJRCKVP6KZVWQ',\n",
       " 'AFEIRQFUIWWEOUUVJPJABQNYNRTQ',\n",
       " 'AFATDRITKAXQWKJSVV42HD6DCL7A',\n",
       " 'AGGIDBBK72RWJHE7BASWOBTEOAOQ',\n",
       " 'AHUAA35OBLLFVOUK5EPLHEDWBNHA',\n",
       " 'AECQOHXSLDWNHJ5O756D3CLJ3XJA',\n",
       " 'AHTHYUMKHBF3YARQ4R7I3N2ATQPQ',\n",
       " 'AEJN6JDDKFTHCGMIRMKETVQXEY7Q',\n",
       " 'AEP5QRH65BIOM6QIR3UYPONOHQAQ',\n",
       " 'AGHKEFJ3HAUYCG7REZGOTRPVTGBQ',\n",
       " 'AEKJ32WN54TT5WY2YKUAIFHUOQ6A',\n",
       " 'AGM7D2CWC2S7SA3DNG76HBOBIJHQ',\n",
       " 'AEEFHKXORHMFHHQGAMN7IGPDLR3Q',\n",
       " 'AFGEFEYZVSLPEYM26MPZVCWFS6QA',\n",
       " 'AGH6R54JIMB45QQZO4Q5Q35COREQ',\n",
       " 'AEOBHC6YA3VJUINMJMKWQ67YJGBA',\n",
       " 'AEVMXFP4XWANHZUTJYNODE2HMLXQ',\n",
       " 'AF3L6C5RGINW34EI6FBRAOTWF3HA',\n",
       " 'AFDITRQFNWTZJEUUDCMMU5TJY7AQ',\n",
       " 'AFRNKJ6KRHGQGVCCZEX5BNZEFZ6A',\n",
       " 'AEVFQQ4KHIXJWZHJLDVGP4GT33KQ',\n",
       " 'AFRSFG6BJSEF7BRC2BZFZVIKW5GA',\n",
       " 'AGCDYCOSIXHAQYIZQANN4OAV7ZJA',\n",
       " 'AHWBM2FHMFIGE2RT44L4QZSGTI5A',\n",
       " 'AE5FYR4ZMEIE2ZQV33N4FDAKZDQQ',\n",
       " 'AHSZFUZ55HLH2OTKPWR4AWBBQKLQ',\n",
       " 'AHEPA5UAH4L2EYFJYE2YIY62Y2MQ',\n",
       " 'AGRFTU4TNUTZ42K7QI7DH7VYCWQA',\n",
       " 'AEBVH6Y6OVRWG3NNAIAKEZHBR45A',\n",
       " 'AGPICY6BOSXVWY2AO24GHFXDEQ5A',\n",
       " 'AER67O6IBNSB6MNBRTKM2PONAM3A',\n",
       " 'AEIRQ7VERUC4LTUGQWNMVNIQ4Z3Q',\n",
       " 'AFZR23CKH4TH75F5H7BWIXZXT3MA',\n",
       " 'AFZWHQSWP3JD6KSR54DYNKSNQPQA',\n",
       " 'AHOL5O7CE665RAOUTIPGMNLZE4YQ',\n",
       " 'AHHHNSVCXQIPQJYY2DZWABIOYKCQ',\n",
       " 'AFE5OQOSMYPRODEFRKOVKDY67EZA',\n",
       " 'AEZ6UH7JZL5C3VQDD5PMBXMYUELA',\n",
       " 'AGXCFFGK57DGL67PLCUBRUPRMPKA',\n",
       " 'AFUF5X2CWAGMAUWRCY2HMRGZGGYA',\n",
       " 'AFVCKQHM7EXPEHUQ74ZHLMWDZHLA',\n",
       " 'AEPKUAVBKLD7LOV4ZVBSRRQOUDUA',\n",
       " 'AF2N277YG57MSQPS4ZBEVQSH24HA',\n",
       " 'AE3TRMZSBBRFAHGNHFZDV6ZJISAA',\n",
       " 'AGA24V2XNTSAFIDGISYV46KYF2WA',\n",
       " 'AGJPINULONQSDSCYS4IJEACTOGWQ',\n",
       " 'AH4EB2CZI5DUBN267GHDSICABCKQ',\n",
       " 'AHCDUZOLVLLHAFI7HKPRPVMR5IBA',\n",
       " 'AFUC7WOHXGVA2S5DYOOCSRK47LVA',\n",
       " 'AG3BZTM5Y5X3UTW5777PNAQLQHJQ',\n",
       " 'AG2B5U7UVNYWRBTYYWT3BVBPRLXQ',\n",
       " 'AGBLSXUHNXTYBRHCX5K37ERSOG5Q',\n",
       " 'AGSHLR7DQCSY4KURWFJPIBBCPZPQ',\n",
       " 'AFU6JDVUXHX4WIIANMIRYLPPKEBQ',\n",
       " 'AHZAL2MBABHH4D3335XG4X6VUSWQ',\n",
       " 'AHQ5QTJW3TTX25V7RUCSNSDO426A',\n",
       " 'AHE62GSUFQX6QGBN4FNRZDFIOGBA',\n",
       " 'AHS5JGHPAQIZJBNGVJROOEGG72BQ',\n",
       " 'AFQ33JKRW7O6MIKGISFY7P4AP6OQ',\n",
       " 'AFPWHWPT4KLGLAPDF5RRTTYURJLQ',\n",
       " 'AHSBW6TOIJWQRFTNAGZJTSZMAYXA',\n",
       " 'AEV7Y6MH6FJPMR5GBICZJQ6TVJDQ',\n",
       " 'AHV62SAJC4SJGOTY3RY4AA3KOKIQ',\n",
       " 'AEXM65ZCQ7YDL6QJZXDNJJ7H5NHQ',\n",
       " 'AFI5CXJ3XWGLQG22MNOP5X37JFSQ',\n",
       " 'AGZKDXAXDL3DQN62CSIQQWFRMNJA',\n",
       " 'AFIX4LVA2JT7GYGIYOEU5QO7GVQA',\n",
       " 'AEWAXQM5KTOKN4JRP4UNDOT27ALA',\n",
       " 'AE4DKVHCJ7Z5UC5M4C462RGO3Y6A',\n",
       " 'AEZBKBPZESCWQRKD5JNUVH36ZEYQ',\n",
       " 'AHLKVBPMFIQ6Q4N52CFZ76BFPV6Q',\n",
       " 'AE26ONRER6BYELD3K2UYYHYTB64Q',\n",
       " 'AETTJKPNWGLL2SW5622KYACUXZXQ',\n",
       " 'AFESOEZGYHQM5LC36TMRDASOGVUQ',\n",
       " 'AE75AUGHOQ6ZDRC25Y5NGYTZEZBA',\n",
       " 'AFXB35KMSF56PNZH7VNOXAZLAJIA',\n",
       " 'AESPOZEWTT7ZLHIMUSWHMDQTUXJA',\n",
       " 'AHDA2HZCH2OMQETKDHSIP7BCBH4A',\n",
       " 'AFG3FCQWCIGM5HI4RBGBCHM7P3QA',\n",
       " 'AHB4KLVCGYCQMHMT632USUTOOAHA',\n",
       " 'AGYFUWMQUK7SE44OX6VEBZCQSKTQ',\n",
       " 'AGXLNJIYY6V6RSRD2R7NYLY6HLMA',\n",
       " 'AE7Y2NDQJDR5ALRHMFIBYDB7WS4Q',\n",
       " 'AENNZZ5T3UUGWNUABFMIVWOA3B4A',\n",
       " 'AGZIKEHUXIECYB6NRNTHPRV3TOKQ',\n",
       " 'AEFBAUUZNGQXN4SPWY4DCACRDJQA',\n",
       " 'AGFWHJLMHFWURKWFMZER5AKB3BJQ',\n",
       " 'AHOIPMZUO7NA4T7AFITBSP25DSXA',\n",
       " 'AHKB6CO4GSR7XKHENM4GRF3VPVHA',\n",
       " 'AE5FCBYDJ5ZLUNJQCYQP3XS7Q5HQ',\n",
       " 'AGXYX4S4J6652DMUX3PNPV5QH44Q',\n",
       " 'AEP26A2DX25QB3BYE6DL3FFHLQVA',\n",
       " 'AE7A56JPSLXRXUWHPVF4575QAFPQ',\n",
       " 'AEF4FBOGXU52RWGB74QDCZ7L7GTA',\n",
       " 'AEMO4QFMDYLQEEJFMT2EZPNNQL6A',\n",
       " 'AGWULKWZSIEFKBUHZYD4TPZ6TBRQ',\n",
       " 'AENUKAEG2KO7SCUGXHT5SFU5IMRA',\n",
       " 'AGQBRFHR7HRYVBGVX2POHWOWIXYA',\n",
       " 'AEZDQXO7GBLFBDYW2UO4OYP7BZNA',\n",
       " 'AGE4Y5ISR3RBTM65DSFLBRBVBEIQ',\n",
       " 'AFPS3G6IX75KQ5BTBCBS67XTTBZA',\n",
       " 'AFAUH2YJEN77JCXUER3V7UATZINQ',\n",
       " 'AFF7FTAHSDNS6FMTPIEKJ7AG7QUQ',\n",
       " 'AFECN3ZGJYXSGHRUJBC2ZZCE644Q',\n",
       " 'AHYNIIB2U6HLEXFWCHL4YHHZANFA',\n",
       " 'AF66NNTG2LHLLXIFFTSBB6QOYASQ',\n",
       " 'AGEIGA3G7CTU66DN4C746JVU3R6A',\n",
       " 'AGYEGTZUNO3GN5LRHRQST7QBZOEQ',\n",
       " 'AENUU26J5AD4DBTH4ZFNVFFTACOA',\n",
       " 'AFDZV2N6JEININLKTREL7MGVMJOQ',\n",
       " 'AEE7DOL6IWGUEPPOZOI7QF6G5ONQ',\n",
       " 'AFF7NWF3L7CGW4C4JMK534F2N4MQ',\n",
       " 'AFPNFRQUZGIICNBUJCMO7MWEX55A',\n",
       " 'AGHIUHKY7AL42LTGGHOI6FLVG5FA',\n",
       " 'AE7J25RZZBQAHCV2WQKZS3DY37IA',\n",
       " 'AGFAJUZA4CW4YPKSWOW2MYPJIHBA',\n",
       " 'AH4CF4DRIZ5C6L5SV4PYL7E2BG4A',\n",
       " 'AHNOEGHBBGOO4Q7UTCT4PB3X4W5A',\n",
       " 'AHS2QAFBG7RIXX2D23BLZTFIBM4Q',\n",
       " 'AHB6FXLGFKLAXL5DGK54Y2OGKHLQ',\n",
       " 'AEPDOQYNNLJYLUB3HPGCZWRFT3OA',\n",
       " 'AHSY725NF3PNQ2NRAFZHIR25GZWQ',\n",
       " 'AFG6WVKTO4BXGD6BMFHTUGGGZECA',\n",
       " 'AFHQCONKUBNVI5HNALWBOZFS7BEQ',\n",
       " 'AE5JJCRHO7XILDUSR4R4I3IL67MA',\n",
       " 'AENQHHRO4IZTR75FAA36BCKXQHIA',\n",
       " 'AG26WPIFCPORDOIRV5ZL4RBC6IQA',\n",
       " 'AECAUPK72HFLR7FOMXRCH7M6HR6Q',\n",
       " 'AF3VNUL7DE7LFQGODYNMZAD3JNEQ',\n",
       " 'AG2ZWZKEDZICBF3HRYY4QWNXJNLA',\n",
       " 'AHMNGRSB37WJB7T7JWSFGNU33PWQ',\n",
       " 'AFO3Z2W3L6GEEITOXW3ML42NL2JQ',\n",
       " 'AHWA3V4ZRQXDAHGJRKZQ6YQG47EA',\n",
       " 'AEPSA2FAKKSZSEKLGISC3BY2SPDQ',\n",
       " 'AHZ2CDNWER7CY4RNALOGCTSI33LA',\n",
       " 'AF4WCJVHB4SKRHHURC767YKBDF5Q',\n",
       " 'AHY2RPUMSBIU4UCJFGLKIJDB4B3Q',\n",
       " 'AHJ3H2V36SZFD3DQDU6YBXPKLQSA',\n",
       " 'AGML4AYRKAW2QXL57ALUZ5PTT6NQ',\n",
       " 'AG2CLBBRQD2KIU7CAA524AGH4FBA',\n",
       " 'AHYLYW7KEE7NQRVE6HSG7LGQT5OA',\n",
       " 'AEI6RKFSRQRSW52DLHIY3E5T3RMQ',\n",
       " 'AGKKROZ7KB7ZETJPHRGBE5H2NO6A',\n",
       " 'AHDRJXK3XWJGB47YMNVZVNP6H2OA',\n",
       " 'AEWEVKCRPXEYQGGTSFGKP5QKKKAA',\n",
       " 'AFLOKWGLQ4LRS3MH5YX3PQMHYKCA',\n",
       " 'AFKNDNUFTBSWK4V5I35X2XQ4TGCA',\n",
       " 'AFSTPYLFF5BXYJWLPZLXXEFNUGZQ',\n",
       " 'AE5P2LULW5FFIYL6P53G32YASNMA',\n",
       " 'AFWVCWLGGBL7VGLT3ZY5JOK47N4A',\n",
       " 'AFOFPVLPWYC5SKZ47Z7BWUD2I7MQ',\n",
       " 'AE6LTLRAZESX7ZKW5G3MOT6ZM63A',\n",
       " 'AH7W4P3UPDSPZ4JKVB7NXIILYZNA',\n",
       " 'AEJFXMSPZXRQFRT4PVKG4XN6FKQA',\n",
       " 'AECMFWTLVW6ECYFOUE7HWM2G7PYQ',\n",
       " 'AGVX6ZQFOPQQQBKTKYAHQ7A6J3OA',\n",
       " 'AEFH22QTRNN5MQVZ7WYGWYFKUDYA',\n",
       " 'AGDSWGV6TXJ4EYRXTYDNXQH3AT3Q',\n",
       " 'AFBQXKEWXNJRKRT46L3QQ3R52SYA',\n",
       " 'AH3ABIBGPK5XKXX5XQ43DUV2WADA',\n",
       " 'AE5MSB76L22MFY4ZMC5J4YQCT4CA',\n",
       " 'AFLDZ5OM3TNEC2H3GN6ZELVW4JHA',\n",
       " 'AERY5SDWKK46S2WMKEOVFF5IGFLQ',\n",
       " 'AHL45CRRTDF6632XTIVO7PZ7FFZQ',\n",
       " 'AFTWB44U3RPNA6X44XYRO4KZCY2A',\n",
       " 'AG5XOC2YL3SO5F4RPCO6O2Q4QGVA',\n",
       " 'AG4FBD6NQTSPE47KLCXHHEN3VZVQ',\n",
       " 'AHL6AULPMU5UGDOGRQRWKZ2EQFYA',\n",
       " 'AG7PGNKZP627XIJYP6ZLIJASYDJA',\n",
       " 'AHYKYRZF6DLKZ3AORGRW5XVFW3BA',\n",
       " 'AGOVVSFGMNDTAI727WECIFKBMEHA',\n",
       " 'AGTMH5CQV7QPJJJG5TBZ4ZHN6LUA',\n",
       " 'AF5CFMFJLQYPILGOJUGVWFRWRE6Q',\n",
       " 'AFTGWZO4NIIQM4CJ7NJ6NOW2RE2A',\n",
       " 'AE2JDZT5QIIMJFBYOPUYINIC3YWA',\n",
       " 'AET7GZN7US3MFMTQEX4Z5PA6NTXA',\n",
       " 'AFTNKKVJXWYXUU5WNQFOT6QIFGZA',\n",
       " 'AHIXEPUNAEYJUH6SOCYMZ2ODNUCA',\n",
       " 'AGZMHC36FHMTP3XKJUUMHOYNBXHQ',\n",
       " 'AF2OGRWLKLZBPPWIIBJQIIMEAOOQ',\n",
       " 'AFDNCMGCHTBCJQMO3DC6VKJEW7JQ',\n",
       " 'AFRDGYORGAHN74LOIURIBZI2K7YA',\n",
       " 'AF7FEGDQK3JM4RR4J4GT7L3Q2SBA',\n",
       " 'AHJM2MIMWGFLGYLPCJZATBRQW4HQ',\n",
       " 'AHSDF5LANJOQQGSPW4XVWRYPHAJQ',\n",
       " 'AHUSUD6ON2TRN73XX4VWIUI4MTNA',\n",
       " 'AGCVM4RWIXH5KQVS36CMWUHXUVUQ',\n",
       " 'AFFRW6GEHCDUZ22C3KGADSKNK2GA',\n",
       " 'AEREM3FCVVV6ZZE2IBAWGEFQFICQ',\n",
       " 'AFQS7OBHKXU5K24D2U2ELJCWLPJA',\n",
       " 'AHF6VXQGEU2HABYA2T35OZCLM7GA',\n",
       " 'AENNKEG2MCXJTMBX2Q35FS26VOIA',\n",
       " 'AGB2ZVBO3UHBFGGG5VXVKFA5B2ZQ',\n",
       " 'AEBBUVW2NCXDA7ON2IJI4TVXNU5Q',\n",
       " 'AE4STV4APZU57NYNT2DEV3DN2S2Q',\n",
       " 'AFZCEPOHXKYNV4UPEPG2CKP5M5GQ',\n",
       " 'AEHFHXO7G4AUTDHT3UBFGGU2DQJA',\n",
       " 'AEYY4YD2WJ4INUSGJYVA4W25H6HQ',\n",
       " 'AF27LC44WYNCGMDPSHAVVXXZZEJQ',\n",
       " 'AFARBTE5M5DLL63ZWEYQY3EODPVA',\n",
       " 'AEP6QR63DQSJYRLB37O7TZKLX6VA',\n",
       " 'AERLHVSX7DJUW5NKCMBDAS3WZLPQ',\n",
       " 'AFYOXOP7I4GRZESNMC2SVNCB4M6A',\n",
       " 'AGUHQB2EZLTSEJCGLUDXPVGXRQUQ',\n",
       " 'AE5DJKNQD6DIXPMLT7OSHCQ4HYAA',\n",
       " 'AFC37GJYS3FCVPAFUOJQGGKLXZYQ',\n",
       " 'AGG2J6GY4Z7HZRUQOXS7TIWZN3LQ',\n",
       " 'AFKUQSN56BUP2BHHY7FLOZ3GFUPQ',\n",
       " 'AGV4OBOI5DOIGAXPS24FI4ZIC5OA',\n",
       " 'AECFFUFPX2RILG2VDMCYWYY3EKGQ',\n",
       " 'AGTGXCLBYZDUAMIS3THSK26CLBZA',\n",
       " 'AF5JSTPEP2RUW2OAHFUETGIKTF6A',\n",
       " 'AG34H4RSF6PLDGKM43TVHPN4DOOQ',\n",
       " 'AFYIB5XQMF7MSDWCIE3H56QC6J3A',\n",
       " 'AGFYMQ3MGEOKCYYLARG7AGCIQX3Q',\n",
       " 'AFKKOMKSL22TV22HNWRIOLKI7CGA',\n",
       " 'AGM5M4AJCSSK6B76XR4RB44EWZ3Q',\n",
       " 'AG3MV6UMC3CJIKQA2C2P3U727Y4A',\n",
       " 'AH7744BDQM6S2TI4PDDUWSNADGVA',\n",
       " 'AH27YSCVPF6GUEV2SVMGMZPDBA4A',\n",
       " 'AGLCOIJF3EDIA74CJVVYUPQTDAPA',\n",
       " 'AG6X2R5FAK76T65J7V2YDXI2LPOQ',\n",
       " 'AEQ6I33FGSV624ZB7N3HLLPSK54A',\n",
       " 'AGFRV3LVLJWFGN5FUEMVIURXEKKQ',\n",
       " 'AHDY4TIIV5NNDE6PG2ACWJKXZ7RQ',\n",
       " 'AGDZIAY4QGJYOE5AYQHI2WK46G6Q',\n",
       " 'AGCQ3FV6VPSDCUFSWL456XXPUOZA',\n",
       " 'AGHEKW4XF2XIEXARGQXQQOKONSCQ',\n",
       " 'AHXTWF34IKPRIJK2U7DRKZLSLG3Q',\n",
       " 'AH4NIUGNHTEGJSXVYA2PIAI3RXPQ',\n",
       " 'AE5A5CY7UZDK4U3RAAV6EDL3SW7Q',\n",
       " 'AHCC5A6CP6AYZ6UYYGFRYPKGC2EA',\n",
       " 'AG75ZLY5VNKYZI3G3ITFGVGGXBSA',\n",
       " 'AE6FG4WXQPCTTU2FRMWBVDECMPUA',\n",
       " 'AH46CDUYGLUXMCT55TIYV6OVSX7Q',\n",
       " 'AFPDDYTUKZF6HSEOK67TZH4OBGQQ',\n",
       " 'AEPQIN3YJNZMTTRKQ2FF6KSYTAVQ',\n",
       " 'AF7FXABOCWHBRIC4W7DQ6GZPZCXQ',\n",
       " 'AET7DQIA4EJEC7L4YU52ZNV3RCKA',\n",
       " 'AEDQXDGLRAD7T6FZ3IW6AH7F4YPQ',\n",
       " 'AE75JFJIMY6ZVTSCUKVUPPI3VQYA',\n",
       " 'AHYZY3JFV5FP2PN5KOEAI4W7IR5A',\n",
       " 'AHH6MVARXKDD426RCQKI2GGHMQYA',\n",
       " 'AFK64JGFG5DGE6KHJHYOPNDRI67A',\n",
       " 'AF4YJVYHDISOIBM4MIKZQJKTXAEQ',\n",
       " 'AFECRA3IPVRDCJOT4OPS3YL4QJFQ',\n",
       " 'AHDTNVP6PTQC7PWGHVJY7HMT2BHQ',\n",
       " 'AGHSIQKQGKVDNCKHO5XQG2LBMPZQ',\n",
       " 'AHZGWMCH73H5CNYRRS3OTS5Q6QTQ',\n",
       " 'AGMSZNYUUFUERXVUISVBCABJVBOQ',\n",
       " 'AFSDUND7JY75N3JMYQJKBX2KDIRQ',\n",
       " 'AH73ERILTP56336SQROFLR4CWHGQ',\n",
       " 'AFZTRJNGWHDLUYZE6VGJEHEUUVSQ',\n",
       " 'AFL3BGRDUGPZ4TP3L5GEDOFPFGQA',\n",
       " 'AEGASJAT4S7OR6MZQYZTI3K5VK4Q',\n",
       " 'AHGCM7FVLPJ3JHHE2WNWOVPWPB2Q',\n",
       " 'AETOHH4CIM7VOG3A5IQ45A3ECTDQ',\n",
       " 'AH67IMPD27TYIIKX7CTQJMAOANEA',\n",
       " 'AHWQI4J74OSV2UOTNDACPJGOLLDQ',\n",
       " 'AEQJJMTEXX5KCQIFXN6VSV6GFHIA',\n",
       " 'AESGATLLGZWL3AUKAUPDCTYFPWJA',\n",
       " 'AERKTTFCMCP6HBKJIPPCQJIK3FIA',\n",
       " 'AE4W5UKHV2OV3PVDFMB2HLFXAUSA',\n",
       " 'AFLVS2P4OEIRYKZTJTXPIK52PZ3Q',\n",
       " 'AECABIN7BUSFFMVBWZ7ZK6WQP67Q',\n",
       " 'AGBMLPAUJEOK6GFY2723VP6WDIZQ',\n",
       " 'AHBDBARFXEZHGW4X4EOLXV5ARHPQ',\n",
       " 'AG6RIFNPAGYRMFTVE3AJXSEVZO3A',\n",
       " 'AEYPMQ3BENUAHPGVSY4N5J6T7S4A',\n",
       " 'AGHUUCAIZSBR5PMS5BONSKDHQWIA',\n",
       " 'AFPERPUQKNWQNRSEIITG36FDJLMA',\n",
       " 'AHNTPXZXD47D6H2C3UG4W5IT73XQ',\n",
       " 'AGX52YWTH44KCMOYKOFLON2RWNPQ',\n",
       " 'AGG5G6FV6YI2WR65PEL7AW6W2FUA',\n",
       " 'AFFPWFB6L7ASVZEUC6U4EP2ATGWQ',\n",
       " 'AFJ2FF4BPURKN4AXQ25IQC3425QQ',\n",
       " 'AE5GKZTQ4JF3AP2SJXJ3GJII7LVQ',\n",
       " 'AHDTZGRE76N4BBUZLQJEISPOTMEQ',\n",
       " 'AFOOVTULVMQUQNGHUXG746H7ZSLQ',\n",
       " 'AH64MKDSYBORW2V5KXKGWNBJ3OZA',\n",
       " 'AFK4FB6YSJ4535E6Z57D6ZHVFHVA',\n",
       " 'AGV2VOE7VEODXOXZJ5MUFDZDGWMQ',\n",
       " 'AFVHPEREXZTSME4CFEV7UJ7LTZ5A',\n",
       " 'AFQP25BWB3B7BHKQB2BLMUZJ2XDA',\n",
       " 'AHXODQNMGUT2MLW44JW2PE5I4OSA',\n",
       " 'AHACSGZQZS5LVXCRY3O4DWN6GSSQ',\n",
       " 'AHU7TRFKQX5ILHGA4ZNAV4IUYBGQ',\n",
       " 'AG4HGXF7BHP6URTBY54Z7OSGW4DQ',\n",
       " 'AGXJY2HLWGQE6GTH24FAYTQRV3RA',\n",
       " 'AHBZMOEARWYQZSDL4XUDMRRU2S2A',\n",
       " 'AG4H6Y7OYXYYVIGVHWKGJ4AKGYGA',\n",
       " 'AGFUCXT25OMXSK4R662P6BEHEB5A',\n",
       " 'AFMT6UGEY5KLQLIV2GIK4CTFMPRA',\n",
       " 'AHXM4MGS24OMYOXTERWNKG4ZMQAQ',\n",
       " 'AHZJOBNPHDCMT66NVXOGXFW34JGA',\n",
       " 'AHFQND47JQO5SXUELT4P5KOFYQLA',\n",
       " 'AF5NUQIUUKPV23Z7EVLPUCHCCICQ',\n",
       " 'AFFPDYVAZTH6HSSHTNNNT7N2YSWA',\n",
       " 'AFPXQQS73E4657WAOLTP4X36E5NQ',\n",
       " 'AFS2DIT37DMIU4T4PNL3KZIARKCA',\n",
       " 'AEM642YQODKHINPUTRJNBCDPF4NA',\n",
       " 'AEPMXWT3WEOWC6CLFJQUN4ELN3SA',\n",
       " ...]"
      ]
     },
     "execution_count": 27,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "dataloaders['fused_user']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "b567feca",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "conda_amazonei_pytorch_latest_p37",
   "language": "python",
   "name": "conda_amazonei_pytorch_latest_p37"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.12"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
